接著我們來看a模式。
a模式只是追加寫模式,它只能寫不能讀。
還是老套路,我們來看當(dāng)文件不存在的時(shí)候會(huì)發(fā)生什么情況。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\d.txt', mode='at', encoding='utf-8') as f:
pass
還是寫一個(gè)不存在的路徑。然后運(yùn)行。
看見左邊文件夾里面出現(xiàn)了d.txt。
所以說a模式下文件不存在時(shí)會(huì)新建一個(gè)空白文件,恩建指針也會(huì)在開始位置。
如果當(dāng)文件存在時(shí),文件指針會(huì)調(diào)到末尾。
現(xiàn)在我在這個(gè)文件里寫點(diǎn)內(nèi)容。
然后我先在這個(gè)子代碼塊這里試試f.read()。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\d.txt', mode='at', encoding='utf-8') as f:
f.read()
報(bào)錯(cuò)了,說不能讀。
那繼續(xù)試試寫,用f.write(),然后里面加一個(gè)\n。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\d.txt', mode='at', encoding='utf-8') as f:
f.write('那么短,還站那么遠(yuǎn)\n')
運(yùn)行一下,然后再來看d.txt文件。
我們可以看到,把剛剛的那句話寫到最后了。
這正是因?yàn)閍模式下文件指針會(huì)直接跳到最后,所以我們用write寫的時(shí)候,就是從指針當(dāng)前位置開始寫。
所以我們寫的內(nèi)容就是在最后面了。
現(xiàn)在如果我在這個(gè)子到嗎塊里接著寫,就是說在這個(gè)文件美觀的時(shí)候連續(xù)寫,其實(shí)就和w模式下是一樣的。
with open(r'G:\PythonProject\學(xué)習(xí)\學(xué)習(xí)文件\date\d.txt', mode='at', encoding='utf-8') as f:
f.write('那么短,還站那么遠(yuǎn)\n')
f.write('那么短,還站那么遠(yuǎn)\n')
都是接著后面寫,來運(yùn)行看看。
在d.txt文件里面,就又多了兩條。
如果我繼續(xù)運(yùn)行,就會(huì)又多兩條‘那么短,還站那么遠(yuǎn)’。
a模式和w模式的區(qū)別就是,a模式每次打開文件,文件指針會(huì)跳到最后。
w模式每次打開文件會(huì)先清空文件,文件指針再回到開頭。
所以w模式我們一般用來寫新文件,a模式我們一般給老文件增加內(nèi)容。
比如日志文件,用戶的交易記錄什么的。
如果niyongw模式來寫用戶的交易記錄的話,你第一的用戶充值之后第二個(gè)用戶再來充值,然后你前面用戶的充值記錄就被清空了。
你的文件里永遠(yuǎn)就只有最后一個(gè)用戶的充值記錄。
未經(jīng)允許不得轉(zhuǎn)載:445IT之家 » 零基礎(chǔ)Python到全棧-a模式