大爽Python入門教程 5-3 檔案讀寫
阿新 • • 發佈:2021-11-23
大爽Python入門公開課教案 點選檢視教程總目錄
0 語法介紹
操作檔案的固定語法如下
with open(file, mode) as f:
...
詳細說明:
file
是要操作的檔名,mode
是要操作的模式,f
是得到的檔案物件名,也可以起其他名字,但是一般推薦起名f
...
是具體的處理程式碼,處於:
後的縮排中。
1 讀取檔案
示例檔案001.txt
如下
math, 80
history, 70
chemistry, 75
讀取程式碼如下
注:要保證程式碼和001.txt
在同一資料夾下。
# 讀取檔案時,`mode`引數是`r` with open("001.txt", "r") as f: print(f.readlines())
輸出如下
['math, 80\n', 'history, 70\n', 'chemistry, 75']
其中\n
是換行符。
print
輸出這個時會換行。
讀取檔案時,f
支援的方法有
readlines
: 得到所有行(字串形式,帶換行符)組成的列表readline
: 得到一行(字串形式,(帶換行符))read
: 得到所有文字組成的字串(帶換行符)
使用這個讀取001.txt
,得到的是math, 80\nhistory, 70\nchemistry, 75
2 寫檔案
示例程式碼如下
# 讀取檔案時,`mode`引數是`r` with open("002.txt", "r") as f: f.write("cat\n") f.write("bird\n") f.write("rabbit")
執行時,會(在程式碼資料夾下)生成002.txt
如下
cat
bird
rabbit
寫檔案時,一般只使用f
的write
方法。
該方法不會自動換行。
需要在裡面的字串手動寫\n
來換行。
3 老方法
with open(file, mode) as f:
...
with
開頭的這樣一個語法,是比較新的語法。
在很多老的教程裡面,可能用的是如下的兩個語句:
(程式碼放在兩句之間)
f = open(file, mode)
...
其起到的功能和with open(file, mode) as f:
是一樣的。
這裡更推薦使用with
開頭這樣的寫法。
4 其他模式
上文中介紹了mode
,讀r
w
的兩種情況。
mode
的值的基礎情況如下
r
: Opens a file for reading only.
The file pointer is placed at the beginning of the file.
This is the default mode.
以只讀方式開啟檔案。
檔案指標位於檔案的開頭。
這是預設模式。w
: Opens a file for writing only.
Overwrites the file if the file exists.
If the file does not exist, creates a new file for writing.
開啟一個僅用於寫入的檔案。
如果檔案存在,則覆蓋該檔案。
如果檔案不存在,則建立一個新檔案進行寫入。a
: Opens a file for appending.
The file pointer is at the end of the file if the file exists.
That is, the file is in the append mode.
If the file does not exist, it creates a new file for writing.
如果檔案存在,則檔案指標位於檔案末尾。
也就是說,檔案處於追加模式。(在檔案末尾新增新內容)
如果檔案不存在,它會建立一個新檔案用於寫入。
以下內容較難,不需要掌握,簡單瞭解即可
mode
的值的拓展情況如下
注:以下值都是新增到r
、w
、a
後面的
b
: in binary format。
使用二進位制格式+
: for both appending and reading.
既可以讀,也可以寫。(此時r
、w
、a
的區別在於指標位置與是否覆蓋)
兩個值同時存在時,b
在前,+
在後
比如mode
為rb+
時,對應的意思為
Opens a file for both reading and writing in binary format.
The file pointer will be at the beginning of the file.
以二進位制格式開啟一個檔案進行讀寫。
檔案指標將位於檔案的開頭。