常見的3種操作模式,r、w、a
#file in 2.x##
r 模式 就是開啟乙個檔案,只能讀不能寫
print(open("
lyric
").read())
data = open("
lyric
").read()
print(data.replace("
somehow
","hahahaha
")) #
寫入失敗
#w 模式 意味著建立乙個檔案,舊檔案會被覆蓋
f = open("
lyric
", mode="w"
)data =f.read()
data = data.replace("
somehow
","hahahaha")
(data)
f.write(data)
#以上操作會將檔案中所有內容覆蓋
f.write("
") #
重新寫入資料
f.write("")
f.write(""
)#a 模式 以追加的形式開啟檔案,會寫在檔案最後
f = open("
lyric
", mode="a"
)f.write(""
)f.close()
修改檔案:
#@1 方式
#先開啟改掉內容之後再關閉
f = open("
lyric
",mode="
r",encoding="
utf-8")
data =f.read()
data = data.replace("
somehow
","haha")
f.close()
#再以覆蓋的模式開啟再寫入
f = open("
lyric
",mode="
w",encoding="
utf-8")
f.write(data)
f.close()
弊端:占用記憶體
#@2 方式
import
osf = open("
lyric
",mode="
r",encoding="
utf-8")
f_new = open("
lyric_new
",mode="
w",encoding="
utf-8")
#迴圈讀,如果遇到則修改;最後寫入到乙個新檔案中
for line in
f: if"
somehow"in
line:
line = line.replace("
somehow
","hahaha")
f_new.write(line)
f.close()
f_new.close()
os.remove(
"lyric
") #
刪除原檔案
os.rename("
lyric_new
","lyric
") #
重新命名新檔案
弊端:占用硬碟
其他操作:
#r+ 模式 追加+讀,可以定長修改
f = open("
lyric
","r+
",encoding="
utf-8
") #
encoding如果不宣告,預設使用作業系統的編碼來解釋檔案
(f.read())
f.write(
"---------test")
f.close()
#w+ 模式 寫+讀,清空原檔案再寫入新檔案
f = open("
lyric
","w+
",encoding="
utf-8")
(f.read())
f.write(
"---------test")
f.close()
#小技巧
f = open("
lyric
","r
",encoding="
utf-8")
print('
cursor:
',f.tell()) #
列印游標,輸出的數字是第n個字元
f.seek(10) #
移動10個游標(位元組)
f.read(6) #
讀取6個字元
f.flush() #
將寫入記憶體的資料寫入硬碟
f.close()
#a+ 模式 追加+讀
#rb 模式 以二進位制模式開啟檔案,不能宣告encoding
#wb 模式 以二進位制寫入檔案,必須寫入bytes格式,需要encoding
python 檔案操作
簡明 python 教程 中的例子,python 執行出錯,用open代替file 可以執行。poem programming is fun when the work is done if you wanna make your work also fun use python f open e ...
python檔案操作
1,將乙個路徑名分解為目錄名和檔名兩部分 a,b os.path.split c 123 456 test.txt print a print b 顯示 c 123 456 test.txt 2,分解檔名的副檔名 a,b os.path.splitext c 123 456 test.txt pri...
Python 檔案操作
1.開啟檔案 如下 f open d test.txt w 說明 第乙個引數是檔名稱,包括路徑 第二個引數是開啟的模式mode r 唯讀 預設。如果檔案不存在,則丟擲錯誤 w 只寫 如果檔案 不存在,則自動建立檔案 a 附加到檔案末尾 r 讀寫 如果需要以二進位制方式開啟檔案,需要在mode後面加上...