讀寫文件就是請求操作系統(tǒng)打開一個文件對象(文件描述符),然后通過操作系統(tǒng)提供的接口從這個文件對象中讀寫文件娶桦。
讀文件
以讀模式打開一個文件
>>> r = open("1.log", "r")
如果文件不存在贾节,open()函數(shù)會拋出一個IOError的錯誤
>>> r = open("2.log", "r")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileNotFoundError: [Errno 2] No such file or directory: '2.log'
讀取內(nèi)容,關(guān)閉文件
>>> r.read()
'111111'
>>> r.close()
防止文件讀寫時因為產(chǎn)生IOError衷畦,而導(dǎo)致close()未調(diào)用栗涂。我們可以用try... finally
try:
f = open("1.log", "r")
try:
print(f.read())
except:
print("文件讀寫異常")
finally:
f.close()
except:
print('打開文件異常')
with open簡單寫法,等同于try...finally
try:
with open("1.log", "r") as f:
print(f.read())
except:
print("打開文件異常")
寫文件
當(dāng)我們寫文件時祈争,系統(tǒng)往往不會立即寫入斤程,而是先放到內(nèi)存里緩存起來,空閑時慢慢寫入菩混。只有調(diào)用close()方法時忿墅,操作系統(tǒng)才能立即寫入。為了防止忘記調(diào)用close()沮峡,所以用with語句比較保險
with open("1.log", "w") as f:
f.write("hello world")