readlines(size)
範例的程式碼使用兩種方式讀取內容為三行 hello world、good morning 和 12345 的 txt 檔案,如果沒有設定 size 則讀取全部的檔案內容,以行為單位回傳為串列,如果有設定 size,則會以 size 抵達的字元位置行數為最大行數,回傳為串列。
f1 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','r')
f2 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','r')
a = f1.readlines() # 讀取全部的行,變成串列形式
b = f2.readlines(20) # 讀取包含 20 個字元的行,變成串列形式
print(a) # ['hello world\n', 'good morning\n', '12345']
print(b) # ['hello world\n', 'good morning\n']
f1.close()
f2.close()
readable()
範例的程式碼執行後,會顯示這個檔案是否能讀取,或是否能寫入,回傳 True 或 False。
f1 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','w')
f2 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','r')
print(f1.readable()) # Fasle 因為設定 w
print(f2.readable()) # True 因為設定 r
f1.close()
f2.close()
f.write(文字內容)
範例的程式碼執行後,會清空原本 test.txt 的內容,寫入新的內容。
f1 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','w')
f1.write('good morning') # 寫入 good morning
f1.close()
f.writelines(文字內容串列)
範例的程式碼執行後,會清空原本 test.txt 的內容,並以串列方式寫入內容,如果需要換行必須自行加入換行符號 \n。
f1 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','w')
f1.writelines(['123\n','456\n','789\n']) # 寫入三行內容
f1.close()
writeable()
範例的程式碼執行後,會顯示這個檔案是否能讀取,或是否能寫入,回傳 True 或 False。
f1 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','w')
f2 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','r')
print(f1.writeable()) # True 因為設定 w
print(f2.writeable()) # False 因為設定 r
f1.close()
f2.close()
tell()
範例的程式碼執行後,會回傳目前讀取檔案指針的位置 ( 檔案從頭算起的字元數 )。
f1 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','r')
a = f1.read(5) # 讀取前五個字元,讀去完畢後指針位在 5
t = f1.tell() # 讀取指針位置
print(a) # hello
print(t) # 5
f1.close()
seek(偏移量, 起始位置)
範例的程式碼執行後,會將指針從開頭位置移動 5 個字元,然後再讀取 5 個字元 ( 起始位置預設 0 表示檔案開頭,1 為當前位置,2 為檔案結尾 )。
f1 = open('/content/drive/MyDrive/Colab Notebooks/test.txt','r') # 內容為 123456789
f1.seek(2,0) # 將指針移動到 2 和 3 中間
a = f1.read(5) # 讀取後方五個字元
print(a) # 34567
f1.close()
close()
關閉檔案,並釋出記憶體。
使用 with
使用 with 可以讓開啟檔案,執行相關內容後自動關閉並釋出記憶體,使用的語法如下:
with open('demo/test.txt','w') as f1:
f1.write('good morning') # 寫入 good morning
# 完成後如果沒有後續動作,就會自動關閉檔案
如果有任何建議或問題,可傳送「」給我,謝謝~