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'xe7xbbxbfxe8x8cxb6')
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'test. ='utf-8')
n = f.read()
f.close()
方式二:
with open('test.txt','r',encoding='utf-8'with open('test.txt','r',encoding='utf-8'with open('test.txt','r',encoding='utf-8'with open('test.txt','r',encoding='utf-8'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)