1、檔案開啟
開啟模式:
f = open('test.txt','r')
#r,唯讀模式,檔案不存在時,報錯
f = open('test.txt','w')
#w,唯寫模式,檔案不存在時,建立檔案,檔案存在時,清空原檔案
f = open('test.txt','x')
#x,python3新增的模式,當檔案存在時報錯,檔案不存在時,建立檔案並寫入
f = open('test.txt','a')
#a,追加模式,檔案不存在時,建立檔案
編碼格式:
上述開啟模式,預設的encoding='utf-8',當開啟檔案出現亂碼時,可能是由於編碼格式不一致導致的
此時,可以通過調整編碼格式進行檔案讀取
f=open('test.txt','r',encoding='utf-8')
f=open('test.txt','r',encoding='gbk')
bytes模式:
當使用b參數時,檔案將通過位元組方式開啟,而不適用b參數時,檔案將以字元方式開啟
f=open('test.txt','wb')
f.write(b'\xe7\xbb\xbf\xe8\x8c\xb6')
f.close()
=>以位元組方式寫入test.txt
n = open('test.txt','r',encoding='utf-8')
t = n.read()
print (t)
=> 沒有b參數,以字元方式讀取檔案,顯示為綠茶
2、檔案操作
f=open('test.txt','r',encoding='utf-8')
f.seek()
=>移動當前指標位置到指定的位置,當開啟模式中,沒有b參數時,是按照字元位置移動,當以b參數開啟時,是按照位元組位置移動指標
f.tell()
=>擷取當前指標的位元組位置,與開啟模式無關
f.flush()
=>強刷,一般對檔案進行寫入或者修改操作時,是先緩衝,待檔案關閉時再寫入檔案,使用該函數時,直接將修改內容寫入檔案
f.fileno
=>檔案描述符
f.truncate()
=>將當前指標位置之後的內容全部截斷
3、檔案關閉
方式一:
f=open('test.txt','r',encoding='utf-8')
n = f.read()
f.close()
方式二:
with open('test.txt','r',encoding='utf-8') as f:
n =f.read()
使用with時,會自動進行檔案的close操作
並且,使用with可以同時開啟2個檔案:
with open('test1.txt','r',encoding='utf-8') as f, open('test2.txt','w',encoding='utf-8') as h:
data = f.read()
h.write(data)