Python第五篇--檔案操作
阿新 • • 發佈:2020-08-07
檔案操作主要就是開啟,讀,寫,儲存,關閉
f=open(filename)
f.read(length)讀多少,如果沒有length就是全部讀到記憶體中 f.readline()這個是讀一行。讀取的時候會有一個游標,如果執行一次readline則下次再執行其他讀操作,從第二行開始進行以此類推
f.write(data)
f.close()儲存並關閉
檔案操作的模式
r w a 分別表示只讀,建立,追加模式。python中檔案操作只能存在一種模式,不能讀進來修改再建立。w模式相當於建立,如果存在這個檔名,則覆蓋。不存在會建立
f=open(filename,mode="w")
f=open(file="d:/test_file.txt",mode="w") f.write("this is the first line \n") f.write("this is the second line") f.close()
追加模式下,檔案追加內容還是f.write(data)並不是用append!!!!!
預設模式是r
檔案迴圈讀行
for line in f:
print(line)
檔案操作的其他方法
seek()當前游標後移幾個位元組,UTF-8中一箇中文3個位元組,gbk中一箇中文4個位元組
flush()強制記憶體刷到硬碟上,因為檔案write其實是先寫到記憶體上,然後滿了才刷到硬碟,因為硬碟很慢,避免頻繁的硬碟操作。這個在很重要的內容儲存時使用,避免掉電丟失資料
其他懶得寫了。。。
混合模式操作檔案(不常用,只是可以用)
w+ a+
寫入後可以讀出,讀入後可以追加寫,追加後可以讀,但是游標會到最後需要seek(0)
seek指定位置,修改了內容預設的是會將後面內容覆蓋的,就像insert模式
如果將一個檔案的內容讀出來,判斷如果有XXX替換為***
思路是先讀出來每一行,判斷是否有XXX,replace,最後重新命名一下
檔案重新命名需要用到os工具包
os.rename()
import os f=open(file="d:/test_file.txt",mode="r") newf=open("d:/test_file_new.txt","w") for line in f: line=line.replace("XXX","***") newf.write(line) newf.close() f.close() os.replace("d:/test_file_new.txt","d:/test_file.txt") #如果替換後的檔案已經存在了,會覆蓋,就和重新命名後提示是否覆蓋,點選了是效果一樣