W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
你想像一個(gè)文件中寫入數(shù)據(jù),但是前提必須是這個(gè)文件在文件系統(tǒng)上不存在。也就是不允許覆蓋已存在的文件內(nèi)容。
可以在 open()
函數(shù)中使用x模式來代替w模式的方法來解決這個(gè)問題。比如:
>>> with open('somefile', 'wt') as f:
... f.write('Hello\n')
...
>>> with open('somefile', 'xt') as f:
... f.write('Hello\n')
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
FileExistsError: [Errno 17] File exists: 'somefile'
>>>
如果文件是二進(jìn)制的,使用 xb
來代替 xt
討論 這一小節(jié)演示了在寫文件時(shí)通常會(huì)遇到的一個(gè)問題的完美解決方案(不小心覆蓋一個(gè)已存在的文件)。 一個(gè)替代方案是先測(cè)試這個(gè)文件是否存在,像下面這樣:
>>> import os
>>> if not os.path.exists('somefile'):
... with open('somefile', 'wt') as f:
... f.write('Hello\n')
... else:
... print('File already exists!')
...
File already exists!
>>>
顯而易見,使用x文件模式更加簡(jiǎn)單。要注意的是x模式是一個(gè)Python3對(duì) open()
函數(shù)特有的擴(kuò)展。在Python的舊版本或者是Python實(shí)現(xiàn)的底層C函數(shù)庫中都是沒有這個(gè)模式的。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: