[Pandas教學]Python 檔案讀取與寫入csv, txt教學與範例strip用法(with, open, rstrip, read, write, append)

應用篇

這邊要來介紹如何使用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」的第一個文字,建議各位記起來以後也還有很多地方會使用到。

留言