這邊要來介紹如何使用Python讀取及寫入csv以及txt檔等檔案。
使用with讀取檔案
一般在使用python讀取檔案時,我們會使用到with配合open將檔案開啟,詳細的使用方式可以看到下面。
- With open(‘File Path’) as 變數:
例如我們有一個練習用的檔案叫做sample.txt。
with open('sample.txt') as f:
print(f.read())
輸出結果
接著我們來看到如果是讀取超過一行的txt檔的話會發生下面的現象。
with open('poem.txt') as f:
print(f.read())
輸出結果
白日依山盡 黃河入海流
欲窮千里目 更上一層樓
可以看到兩行之間會多一行,原因是在每一行的最後面有一個’\n’的文字存在。因此我們在這邊需要一行一行來讀取檔案。
with open('poem.txt') as f:
for line in f:
print(line.rstrip())
上面的line.rstrip()的功能是可以將每行最後面的空白以及換行文字去除的方式。而這邊的r代表的是right,如果今天是想要去除每行開頭的空白以及換行文字的話可以將r換成l變成line.lstrip()。
套用了上面的代碼輸出就不會有多餘的一行了。
白日依山盡 黃河入海流
欲窮千里目 更上一層樓
寫入檔案
覆蓋檔案open(‘w’)
寫入檔案其實跟讀取檔案一樣,都會用到python中的with的功能。不同的是在這邊我們要指定open的模式。
with open('poem.txt', 'w') as f:
f.write('this is a sample')
輸出結果
this is a sample
從上面的with open(‘poem.txt’, ‘w’) as f:我們可以發現,在open中我們多指定了一個‘w’,這邊的w就是write的意思,如果在沒有指定的情況下會是預設值得‘r’也就是read。
但在這邊要注意的是,如果在open中指定’w’的話,會將檔案中原本的內容全部覆蓋掉。
編輯檔案open(‘a’)
如果是想要繼續新增內容的話,我們必須用到open的’a‘功能。這邊的a就是append的意思。
with open('poem.txt', 'a') as f:
f.write('\nappend other contents')
輸出結果
this is a sample
append other contents
上面的範例代碼會在開頭寫一個’\n’的目的是剛剛有提到的換行的功能。
總結
open的模式總共有三種,這三種的功能可以參考下面的表格。
mode | 意義 |
---|---|
"r" | 讀取檔案(default) |
"w" | 寫入檔案(開新檔案,或是覆蓋原有檔案) |
"a" | 寫入檔案(開新檔案、但如果指定檔案存在的話直接新增內容在檔案最尾端) |
「r」是「read」,「w」是「write」,「a」是「append」的第一個文字,建議各位記起來以後也還有很多地方會使用到。
留言