iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 25
0

在第18天有講到os模組部分,它能夠建立、刪除目錄、刪除檔案或執行作業系統命令等方法,在對於操作檔案和目錄都非常方便。當然還有一些其他Python提供的實用模組(shutil、glob),在檔案和資料的管理幫助也很大,不過今日重點會放在檔案處理的部分~

用open()開啟檔案

Python內建函式open()可以開啟指定檔案,以便進行檔案內容的讀取、寫入和修改。語法為:

open(filename[,mode][,encode])

上面為函式open()最常用的3個參數(filename、mode、encode),那麼來一一解釋吧!

►filename

filename為讀寫的檔案名稱,是字串型態,不可省略。可以是相對或絕對路徑,若沒設定,則會預設目前執行程式的目錄。

►mode

mode為設定檔案開啟的模式,也是字串型態。省略的話,將預設為讀取模式。通常都是用r、w、a來進行控制,如下:
https://ithelp.ithome.com.tw/upload/images/20181109/20112078jCw1n4VK5q.png
直接看個例子,順帶一提,既然open是打開,那麼使用close就是關閉檔案囉。

content = '''Hello Python
你好
Welcome
'''

f = open('file1.txt', 'w')          #會直接幫你建立,w寫入
f.write(content)
f.close()

這時候就可以趕快去你的.txt檔看有沒有文字輸入進去,是不是很神奇呢~
https://ithelp.ithome.com.tw/upload/images/20181109/20112078iWROeTdWzl.png

►encode

encode是指定檔案的編碼模式,一般可設定cp950或UTF-8。不過國際間通行的編碼以及許多Linux系統,預設都是使用UTF-8編碼,所以變化其實不大。

f = open('file1.txt', 'r',encoding = 'UTF-8')
...
f.close()

檔案處理

以下就列一些檔案處理的常見用法:

read(),會從目前指標位置,讀取指定長度的字元,若未指定長度則會讀取所有字元。

f = open('file1.txt', 'r')
s = f.read(5)               #前5個字元
print(s)
f.close()
--------------------
Hello

readlines(),它會以串列方式傳回,每一列會成為串列中的一個元素。

f = open('file1.txt', 'r')
s = f.readlines()
print(s)
f.close()
---------------------
['Hello Python\n', '你好\n', 'Welcome\n']

還有一些就簡單統整一下:

方法 說明
close() 關閉檔案,關閉後就不能進行讀寫動作。
flush() 將緩衝區的資料立即寫入檔案中,並清緩衝區。
read([size]) 讀取指定長度的字元,若未指定會讀取所有字元。
readable() 測試是否可讀取。
readlines() 讀取所有行,傳回一個串列。
next() 移動到下一行。
seek(0) 將指標移到文件最前端。
tell() 傳回文件目前位置。
write(str) 將指定字串寫入文件中,沒有返回值。
writable() 測試是否可寫入。

明天來實作看看吧!

參考資料

  • 書名-Python初學特訓班 /文淵閣工作室-編著

上一篇
Day24-多型
下一篇
Day26-檔案應用(帳號、密碼管理系統)
系列文
Python 30天學習日誌30

尚未有邦友留言

立即登入留言