11 python初學 (檔案)
阿新 • • 發佈:2019-01-03
對檔案的操作分為 3 步:
- 開啟檔案;
f = open('望月懷古', 'r', encoding='utf8') # 路徑可以寫絕對路徑,也可以寫相對路徑;
- 操作
- 關閉檔案; f.close()
只讀模式:r
f = open('望月懷古', 'r', encoding='utf8') data = f.read(5) # 讀取 5 個字元: 1 個漢字和 1 個 英文字母都算是 1 個字元 print(data) f.close()
寫模式:w。
# w:寫操作。 在 f 物件被建立的時候就會將原來的檔案清空,重新寫操作。# 如果沒有該檔案,則先會自動建立一個,在進行寫入 f = open('望月懷古1', 'w', encoding='utf8') f.write('望月懷古') f.write(' 張九齡') # 會緊跟在上一句之後寫入。 f.close()
在檔案後繼續新增:a
# a:append 直接在檔案後面追加 f = open('望月懷古1', 'a', encoding='utf8') print(f.fileno()) # 列印檔案控制代碼 f.write('\nHello world') f.close()
檔案操作方法:
1. readline()
# 讀取一行資料。 讀取一行後,游標移動了,如果檔案沒有被關閉,下次會從游標處繼續讀 f = open('望月懷古', 'r', encoding='utf8') f.readline()
2. readlines()
print(f.readlines()) # 讀取所有行,放進一個列表中輸出 # readlines 讀取出來的列表會被放進記憶體中進行儲存,因此當檔案很大時並不建議使用此方法。使用 for i in f,即可對每一行做輸出 f = open('望月懷古', 'r', encoding='utf8') # for i in f.readlines(): 不建議使用for i in f: print(i.strip()) f.close()
3. tell() :得到當前游標位置
f = open('望月懷古', 'r', encoding='utf8') print(f.tell()) f.read(7) print(f.tell()) >>> 0 >>> 7 # 如果是英文字元,則讀取 7 個後,當前游標位置是 7 # 如果是中文字元,讀取 7 個後,當前游標位置是 21.因為一箇中文佔 3 個字元
4. seek():調節當前游標位置
#hello world # f = open('望月懷古', 'r', encoding='utf8') print(f.tell()) print(f.read(7)) print(f.tell()) f.seek(0) # 調節當前游標位置到0,從當前位置開始列印 print(f.read(4)) >>> 0 >>> hello w >>> 7 >>> hell # 又從游標 0 的地方開始輸出
5. flush() :把快取裡的資料儲存到磁盤裡區
f.flush()
6.