打開方法
打開模式 | 執行操作 |
---|---|
‘r’ | 以只讀方式打開文件(默認) |
‘w’ | 寫入的方式打開,會覆蓋已存在的文件 |
‘x’ | 如果文件已經存在,使用此模式打開將引發異常 |
‘a’ | 以寫入模式打開,如果文件存在,則在末尾追加寫入 |
‘b’ | 二進制模式 |
‘t’ | 以文本模式打開(默認) |
‘+’ | 可讀寫模式(可添加到其他模式中使用) |
‘U’ | 通用換行符支持 |
文件對象方法
文件對象方法 | 執行操作 |
---|---|
f.close() | 關閉文件 |
f.read([size=-1]) | 從文件讀取size個字符,當未給定size或給定負值的時候,讀取剩餘的所有字符,然後作爲字符串返回 |
f.readline([size=-1]) | 從文件中讀取並返回一行(包括行結束符),如果有size有定義則返回size個字符 |
f.write(str) | 將字符串str寫入文件 |
f.writelines(seq) | 向文件寫入字符串序列seq,seq應該是一個返回字符串的可迭代對象 |
f.seek(offset, from) | 移動光標,至from(0:文件首,1:當前,2:文件尾)offset:偏移(以字節計算) |
f.tell() | 返回光標當前位置 |
f.truncate([size=file.tell()]) | 截取文件到size個字節,默認是截取到文件指針當前位置 |
舉例:
f = open(文件名路徑,打開方式,encoding ='utf-8') #修改文件編碼方式爲utf-8.
f = open(add1, encoding='utf-8')
f.close() #關閉文件
等效於
with open(add1, encoding='utf-8') as f:
# 對文件執行操作
for each in f: # 遍歷文件每一行
print('each')
#此處跳出了with,對文件的操作結束,文件自動關閉
但是用第二種更好,語法更加清晰.
第一種搞不好什麼時候就給你把文件自動關閉咯
查看
文件內容的查看是以光標位置進行的,所以有對於光標的指令
for each in f:
print(each) #按行輸出,文本文件一次取一行
f.read(size == -1) #從文件讀取size個字符,無size貨或給定負值時讀取剩餘所有字符(像個書籤)
f.tell() #返回當前(書籤)在文件中的位置(位置按字節計算)
f.readline([size = -1]) #從文件讀取一行,如果有參數size,則從文件讀取光標後size個字節
f.write(str) #將字符串寫入f文件
f.writelines(seq) #向文件寫入字符串序列seq
#pickle模塊(集合可以將所有的類型轉換爲二進制永久存儲)進去啥樣出來還是啥樣很優雅
import pickle
my_list = [123,3.14,'小甲魚',['another list']]
# 寫入.dump()
pickle_file = open('my_list.pkl','wb') # wb:二進制寫入
pickle.dump(my_list,pickle_file) # 將my_list列表以二進制方式放入pickle_file文件
# 讀取.load()
pickle_file = open('my_list.pkl','rb') # 二進制只讀打開
my_list2 = pickle.load(pickle_file) # 將文件內容加載到列表