文件操作的步驟:
打開文件 -> 操作文件 -> 關閉文件
切記:最后要關閉文件(否則可能會有意想不到的結果)
打開文件
文件句柄 = open(‘文件路徑', ‘模式')
指定文件編碼
文件句柄= open(‘文件路徑','模式',encoding='utf-8')
為了防止忘記關閉文件,可以使用上下文管理器來打開文件
with open(‘文件路徑','模式') as 文件句柄:
打開文件的模式有:
r,只讀模式(默認)。
w,只寫模式。【不可讀;不存在則創建;存在則刪除內容;】
a,追加模式。【可讀; 不存在則創建;存在則只追加內容;】
r+,可讀寫文件。【可讀;可寫;可追加】
w+,寫讀
“U”表示在讀取時,可以將 自動轉換成 (與 r 或 r+ 模式同使用)
rU
r+U
“b”表示處理二進制文件(如:FTP發送上傳ISO鏡像文件,linux可忽略,windows處理二進制文件時需標注)
rb
wb
ab
關閉文件
文件句柄.close()
操作文件:
detach
占位
fileno(返回文件描述符,用于底層操作系統的 I/O 操作)
fid = 文件句柄.fileno()
print(fid)
flush(刷新緩沖區,將緩沖區中的數據立刻寫入文件)
文件句柄.flush()
isatty(判斷文件是否連接到一個終端設備,返回布爾值)
文件句柄.isatty()
read(從文件中讀取指定的字符數,默認讀取全部)
str = 文件句柄.read() #讀取整個文件
str1 = 文件句柄.read(10) #讀取文件前10個字符
readable(判斷文件是否可讀,返回布爾值)
文件句柄.readable()
readline(每次最多讀取一行數據,每行的最后包含換行符' ')
print(文件句柄.readline()) #讀取第一行數據
print(文件句柄.readline(3)) #讀取第二行前3個字符
print(文件句柄.readline()) #讀取第二行剩余字符
print(文件句柄.readline()) #讀取第三行
seek(移動文件讀取的指針,如果文件中包含中文,移動指針必須是3的倍數,不然會報錯,因為一個中文字符等于3個字節)
文件句柄.seek(6)
seekable(判斷文件指針是否可用,返回布爾值)
文件句柄.seekable()
tell(獲取指針位置)
文件句柄.tell()
truncate(截斷,把指針后面的內容刪除,并寫入文件,要在可寫模式下操作)
f = open(‘text.txt','r+',encoding='utf-8')
f.seek(9) #把指針移動到第9個字節后面(即第3個中文后面)
f.truncate() #把第3個中文后面的字符刪除,并寫入文件
f.close()
writable(判斷文件是否可寫,返回布爾值)
文件句柄.writable()
write(把字符串寫入文件,并返回字符數)
文件句柄.write(‘字符串')
原文鏈接:http://blog.csdn.net/qq_878799579/article/details/72877654