一、文件的介紹
1.文件的作用
使用文件的目的:保存數(shù)據(jù)存放在磁盤把一些存儲(chǔ)存放起來,可以讓程序下一次執(zhí)行的時(shí)候直接使用,而不必重新制作一份,省時(shí)省力
二、文件的打開與關(guān)閉
步驟:新建--寫入數(shù)據(jù)--關(guān)閉
2.1 打開文件
在python,使用open函數(shù),可以打開一個(gè)已經(jīng)存在的文件,或者創(chuàng)建一個(gè)新文件open(文件名,訪問模式)
格式
f = open(‘文件’, 'w')或者f = open('文件', 'r')
如下圖所示:不同的打開文件的方式

image
常見的文件操作有:寫,讀,追加
2.1.1 寫數(shù)據(jù)(write)
- 格式
對象 = open("文件",w)
對象.write("寫入數(shù)據(jù)")
對象.close
- 案例:以寫的方式打開文件,寫入數(shù)據(jù)
f = open('test.txt', 'w')
f.write('hello world, i am here!')
f.close()
- 繼續(xù)寫入數(shù)據(jù)
f = open('test.txt', 'w')
f.write('I love you')
f.close()
- 總結(jié):
如果文件不存在那么創(chuàng)建,如果存在那么就先清空,然后寫入數(shù)據(jù)
2.1.2 讀數(shù)據(jù)(read)
- 案例:以讀的方式打開文件,讀取數(shù)據(jù)
- 格式
對象 = open("文件",r)
變量 = 對象.read()
print(變量)
- 案例:讀取文件(test.txt)
f = open('test.txt', 'r')
content = f.read()
print(content)
- 總結(jié):
如果用open打開文件時(shí),如果使用的"r",那么可以省略,即只寫 open('test.txt')
如果沒有文件,打開報(bào)錯(cuò),存在該文件才能操作
如果文件中存在中文顯示,會(huì)出現(xiàn)亂碼需要添加encoding='utf-8'
open(‘test.txt’,”r”, encoding='utf-8')
- 思考:如果只想讀取幾個(gè)字怎么操作?
- 案例:讀取指定長度的數(shù)據(jù)(單位是字節(jié))
f = open('test.txt', 'r')
content = f.read(5) # 最多讀取5個(gè)數(shù)據(jù)
print(content)
注意:
使用read(num)可以從文件中讀取數(shù)據(jù),num表示要從文件中讀取的數(shù)據(jù)的長度(單位是字節(jié)),如果沒有傳入num,那么就表示讀取文件中所有的數(shù)據(jù)
2.1.3 讀數(shù)據(jù)(readlines)
就像read沒有參數(shù)時(shí)一樣,readlines可以按照行的方式把整個(gè)文件中的內(nèi)容進(jìn)行一次性讀取,并且返回的是一個(gè)列表,其中每一行的數(shù)據(jù)為一個(gè)元素
- 格式
對象 = open("文件",r)
變量 = 對象.readlines()
print(變量)
- 案例:讀取文件(test.txt)
f = open('test.txt', 'r')
content = f.readlines()
print(content)
print(type(content))
2.1.4 讀數(shù)據(jù)(readline)
readline可以按照行的方式把整個(gè)文件中的內(nèi)容進(jìn)行一行一行的讀取
- 格式
對象 = open("文件",r)
變量 = 對象.readline()
print(變量)
- 案例,一行一行讀取
f = open('a.txt', 'r', encoding='utf-8')
while True:
content = f.readline()
if content:
print(content)
else:
break
break
2.1.5 可寫(a)
格式
對象 = open("",a)
對象.write("寫入數(shù)據(jù)")
對象.close
案例,在文件中寫入數(shù)據(jù)
f = open("test.txt",a)
f.write("新的數(shù)據(jù)")
對象.close
總結(jié):
(可寫)形式打開文件,如果文件不存在則創(chuàng)建并從頭添加寫入的內(nèi)容,存在則原有數(shù)據(jù)后追加數(shù)據(jù)
2.1.6 讀數(shù)據(jù)(rb)
格式1
對象 = open("二進(jìn)制文件",rb)
變量= 對象.read()
print(變量)
格式2
with open("二進(jìn)制文件","rb") as 對象:
變量 = 對象.read()
print(變量)
案例:使用盡可能多的方式實(shí)現(xiàn)讀取圖片
f = open('33.jpg', 'rb')
content = f.read()
print(content)
with open("33.jpg","rb") as rf:
res = rf.read()
print(res)
使用習(xí)慣:格式2中不需要手動(dòng)關(guān)閉文件,所以經(jīng)常被使用
總結(jié)
如果沒有文件,打開報(bào)錯(cuò),存在該文件才能操作
2.1.7 寫數(shù)據(jù)(wb)
格式
with open("二進(jìn)制文件","wb") as 對象:
變量 = 對象.write()
print(變量)
案例:備份圖片
with open("1.jpg","rb") as rf:
res = rf.read()
with open("textjpg.jpg", "wb") as wf:
res = wf.write(res)
print(res)
2.2 關(guān)閉文件
格式
close( )
三、文件和文件夾的操作
文件的相關(guān)操作
有些時(shí)候,需要對文件進(jìn)行重命名、刪除等一些操作,python的os模塊中都有這么功能
3.1 文件重命名
os模塊中的rename()可以完成對文件的重命名操作
格式
import os
os.rename("需要修改的文件名","新文件名")
案例:
import os
os.rename("test.txt","new.txt")
3.2 刪除文件
os模塊中的remove()可以完成對文件的重命名操作
格式
import os
os.remove("文件名")
案例:
import os
os.rename("new.txt")
文件夾的相關(guān)操作
2.1 創(chuàng)建文件夾
os模塊中的mkdir()可以完成對文件的重命名操作
2.2 獲取當(dāng)前目錄
os模塊中的getcwd()可以獲取當(dāng)前目錄