IO操作格式
python對文件IO操作有兩種格式,第一種是如下形式:
filepath = 'IOtest.txt'
try:
f = open(filepath,'r')
print(f.read())
finally:
if f:
f.close()
第二種是如下形式:
filepath = 'IOtest.txt'
with open(filepath,'r') as f:
print(f.read())
第二種方式可以理解爲第一種方式的縮減版,第一種方式需要顯示的調用close來關閉IO流,第二種方式with會自動關閉IO流。推薦使用第二種方式。
open函數的第一個參數是文件路徑,第二個參數時IO模式,r表示只讀,w表示寫操作(寫之前會清空文件內容),a表示追加操作(不會清空文件內容)。在r模式下不能寫,在w模式些不能讀,如果想同時能夠執行讀寫操作可以使用r+模式,r+模式下可讀寫,且寫是追加模式寫。
讀操作
文件對象讀操作有一下幾種方法:
read():一次性讀入整個文件內容
readline():讀取一行文件內容
readlines():讀取整個文件內容,並返回按行劃分的文件內容列表
例如有一個IO.txt文件,內容如下:
hello world
hello world2
hello world4
filepath = 'IOtest.txt'
# 使用readline會逐行讀取
with open(filepath,'r') as f:
print(f.readline().strip())
print(f.readline().strip())
輸出:
hello world
hello world2
# 使用read會一次性全讀取出來
with open(filepath,'r') as f:
print(f.read())
# 使用readlines會先返回文件內容列表,將內容先存放到lines中,即使文件IO關閉了,內容還能讀取
with open(filepath,'r') as f:
lines = f.readlines()
for line in lines:
print(line.strip())
# 如果要逐行讀取,直接遍歷文件對象就可以了
with open(filepath,'r') as f:
for line in f:
print(line.strip())
寫操作
# 使用a模式表示追加,使用w則表示覆蓋寫
with open(filepath,'a') as f:
f.write("hello world")