讀取
使用 open()
函數配合 rt
模式讀取文本文件內容:
備注1:
rt
模式中的t
表示對換行符進行智能轉換,在 UNIX 和 Windows 中換行符的識別是不同的,對於 UNIX 換行符為\n
,而 Windows 為\r\n
。默認情況下,Python 工作在“通用型換行符”模式下,可以將所有常見的換行格式識別出來。加入t
參數,在讀取時,如果換行符為\r\n
,會將其轉換為\n
字符。同理,在寫入時會將換行符\n
轉換為當前系統默認的換行符。備注2:也可以給
open()
函數提供一個newline=''
參數對換行符進行手動操作。
# 將整個文件讀取為一個字符串
with open('file.txt', 'rt') as f:
data = f.read()
# 一行一行地讀取文件
with open('file.txt', 'rt') as f:
for line in f:
# process line
...
備注:使用
with
語句,會為使用的文件創建一個上下文環境,當程序的控制流程離開with
語句塊后,文件將自動關閉。如果不使用with
語句,需記得手動關閉文件:f.close()
。
舉例:將 .txt
文件內容讀取為一個 python 列表,列表元素按順序依次為文本文件每一行的內容:
def read_txt(txt_path):
lines = []
with open(txt_path, 'rt') as f:
for line in f:
lines.append(line.strip())
return lines
寫入
與讀取類似,使用 wt
模式即可。
# 將文本內容寫入文件
with open('file.txt', 'wt') as f:
f.write(line_1)
f.write(line_2)
...
# 將 print() 輸出重定向到文件
with open('file.txt', 'wt') as f:
print(line_1, file=f)
print(line_2, file=f)
...