file object = open(filename [, accessmode="r"] [, buffering="-1"] [, encoding=None] [, errors=None] [, newline=None] [, closefd=True] [, opener=None])
其中 filename 是要存取的檔案的檔案名字符串,accessmode 用於指定檔案開啟的模式,詳細的模式見表 1。模式 | 描述 |
---|---|
r | 以唯讀方式開啟檔案,指標指向檔案頭 |
rb | 以唯讀方式開啟二進位制檔案,指標指向檔案頭 |
r+ | 以讀寫方式開啟檔案,指標指向檔案頭 |
rb+ | 以讀寫方式開啟二進位制檔案,指標指向檔案頭 |
w | 以只寫方式開啟檔案,若檔案已存在則覆蓋該檔案,若檔案不存在則建立新檔案 |
wb | 以只寫方式開啟二進位制檔案,若檔案已存在則覆蓋該檔案,若檔案不存在則建立新檔案 |
w+ | 以讀寫方式開啟檔案,若檔案已存在則覆蓋該檔案,若檔案不存在則建立新檔案 |
wb+ | 以讀寫方式開啟二進位制檔案,若檔案已存在則覆蓋該檔案,若檔案不存在則建立新檔案 |
a | 以追加方式開啟檔案,指標指向檔案尾,若檔案不存在則建立新檔案 |
ab | 以追加方式開啟二進位制檔案,指標指向檔案尾,若檔案不存在則建立新檔案 |
a+ | 以追加、讀寫方式開啟檔案,指標指向檔案尾,若檔案不存在則建立新檔案 |
ab+ | 以追加、讀寫方式開啟二進位制檔案,指標指向檔案尾,若檔案不存在則建立新檔案 |
可取值 | 描述 |
---|---|
strict 或 None | 如果有編碼錯誤,引發 ValueError 異常 |
ignore | 忽略錯誤 |
replace | 在出現畸形資料的地方插入替代符號 |
surrogateescape | 將任何不正確的位元組以 Unicode Private Use Area 中的程式碼點表示 |
xmlcharrefreplace | 編碼不支援的字元會用適當的 XML 字元替換,只支援寫入檔案 |
backslashreplace | 使用反斜槓跳脫序列替換畸形資料 |
namereplace | 使用n{…}跳脫序列替換不支援的字元,只支援寫入檔案 |
#開啟檔案 f = open("test.txt", "w+") #獲取檔案描述符 print(f.fileno()) #寫入文字 f.write("Python 語言很強大。n是的,的確非常強大!n") #關閉檔案 f.close() #以唯讀方式開啟檔案 f = open("test.txt", "r") #讀取檔案內容並輸出至終端螢幕 print(f.read()) #關閉開啟的檔案 f.close()上述程式碼的執行結果如下所示:
>>> f = open("test.txt", "w+")
>>> print(f.fileno())
3
>>> f.write("Python 語言很強大。n是的,的確非常強大!n")
25
>>> f.close()
>>> f = open("test.txt", "r")
>>> print(f.read())
Python 語言很強大。
是的,的確非常強大!
>>> f.close()
Python 語言很強大。
是的,的確非常強大!