f = open("歌姬", mode = "r", encoding="utf-8")
s = f.read()
f.close() # 不要忘記關閉句柄
../ 返回上一層目錄
相對路徑 相對於當前程序所在的文件夾
絕對路徑 a從磁盤根目錄尋找 b互聯網上的絕對路徑
f.flush() 刷新緩衝區
mode="w" "wb" "w+" 寫入之前會清掉前面的內容(只要帶w就會清空) w+通常是不用的(因爲很難用)
mode="a" 在原來的基礎上進行追加內容,不會清空前面的內容
mode="rb" 以字節方式讀取內容
可以用解碼方式讀取爲文字 print(bs.decode("utf-8"))
mode= "w" "r" "a" 處理文本內容
mode= "wb" "rb" "ab"處理非文本內容
mode= "r+" 模式
默認光標在文件開頭,如果先寫後讀會導致寫入內容被寫在文件開頭,文件開頭的內容被覆蓋,必須先讀後寫纔是安全的.
r+ 讀寫模式重大bug?只要讀過內容,再進行寫入或者其他文件操作(非讀操作)時,光標都在末尾
反覆讀寫需要移動光標
f.seek(x 移動到x位置,x的單位是byte,如果是utf-8編碼的中文,則數字應爲3的倍數
f.seek(0) 移動光標到開頭
f.seek(0,2) 移動光標到末尾
tell( ) 返回當前光標位置
read(n) 讀取n個字(單位是字符)
文件修改: 創建新文件,把修改後的內容寫入新文件,刪除老文件,再重新命名新文件
for line in f: for循環讀取文件,每次讀取一行 for循環可以迭代文件句柄
print(line)
import os
os.remove("") 刪除文件
os.rename("原文件","新文件") 重命名文件
with open("文件名") as f :
這種寫法不需要 close ( ) 關閉文件句柄
readable()
writeable()
文件切割 line.split()