Python 檔案操作
在本節中,我們將來學習 Python 中的檔案操作。
在 Python 中,你可以開啟、讀取或寫入檔案,然後最終關閉檔案。這些可以通過使用一些檔案操作函式來完成。要對檔案執行任何操作,你必須首先建立檔案物件。
開啟檔案
一個檔案可以使用 open()
函式來開啟,Python 自動隨之就建立一個檔案物件,用於稍後對該檔案執行操作。
開啟檔案的語法如下,
obj = open(fileName, mode)
fileName
是檔名,mode
定義了檔案開啟的模式,例如 r
是以只讀模式來開啟檔案。
fobj = open("PythonExamplefile.txt", 'r')
檔案開啟模式
模式 | 含義 |
---|---|
r |
讀取模式 |
rb |
讀取模式下二進位制格式在 |
r+ |
讀寫模式 |
rb+ |
讀寫模式下二進位制格式 |
w |
寫入模式。如果該檔案不存在,將建立一個新檔案。如果檔案存在,則會被覆蓋 |
wb |
寫入模式下二進位制格式。如果該檔案不存在,將建立一個新檔案。如果檔案存在,則會被覆蓋 |
w+ |
讀寫模式。如果該檔案不存在,將建立一個用於讀寫的新檔案。如果檔案存在,則會被覆蓋 |
wb+ |
讀寫模式下二進位制格式。如果該檔案不存在,將建立一個用於讀寫的新檔案。如果檔案存在,則會被覆蓋 |
a |
追加模式。新資料將寫在檔案末尾。如果該檔案不存在,將建立一個用於寫入的新檔案 |
ab |
追加模式下二進位制格式。新資料將寫在檔案末尾。如果該檔案不存在,將建立一個用於讀寫的新檔案 |
a+ |
追加和讀寫模式。新資料將寫在檔案末尾。如果該檔案不存在,將建立一個用於讀寫的新檔案 |
ab+ |
追加和讀寫模式。新資料將寫在檔案末尾。如果該檔案不存在,將建立一個用於讀寫的新檔案 |
關閉檔案
檔案在執行操作後,必須要關閉,通過檔案物件的 close()
方法來關閉。
fobj.close()
fobj = open("PythonExamplefile.txt", 'r')
#operations on file
fobj.close()
檔案物件
開啟檔案時,會建立一個可用於執行操作的檔案物件。你可以通過它來獲取有關檔案的資訊,例如檔名、開啟模式等。
fobj = open("PythonExamplefile.txt", 'r')
print("File name", fobj.name)
print("File mode", fobj.mode)
fobj.close()
File name PythonExamplefile.txt
File mode r
寫入檔案
write()
方法用於向檔案中寫入內容,檔案必須在開啟後才能寫入。
使用 write()
方法的語法如下:
fobj.write("string")
舉個例子,
fobj=open("PythonExamplefile.txt", 'w')
fobj.write("Hello Python Programming")
fobj.close()
Hello Python Programming
會被寫入到檔案 PythonExamplefile.txt
中,假如原來檔案中有內容,就會被覆蓋掉。
讀取檔案
你可以使用 read()
方法來讀取檔案。下面是從檔案中讀取的語法:
fobj.read(numberofBytes)
這裡 numberofBytes
是從檔案中讀取的總位元組數。
fobj=open("PythonExamplefile.txt", 'r')
content = fobj.read(5)
print(content)
fobj.close()
Hello
重新命名和刪除檔案
重新命名檔案
rename()
方法用於重新命名檔案,其語法如下,
os.rename(currentName, newName)
這裡,os
是一個模組,它允許你執行依賴於作業系統的功能。
舉例如下,
import os
os.rename("PythonExamplefile.txt", "Python.txt")
Python.txt
該檔案的新名稱。
刪除檔案
檔案可以通過 remove()
方法來刪除,其語法如下,
os.remove(nameofFile)
舉例如下,
import os
os.remove("Python.txt")
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn