久久久精品2019免费观看_亚洲国产精品成人久久久_69国产成人综合久久精品91_国产精品久久精品视

Python W模式

接下來我們看w模式,w模式就是只寫模式。

我們以前研究r模式的時候我們知道,r模式在文件不存在的時候會報錯,文件存在的時候問價指針會跳到開始位置。

我們還是按照同樣的套路,我們來看w模式下文件不存在會發(fā)生什么。

我寫一個不存在的文件c.txt,然后子代碼我就先寫一個pass。

with open(r'G:\PythonProject\學習\學習文件\date\c.txt', mode='wt', encoding='utf-8') as f:
		pass

然后看左邊的文件夾列表,看到是沒有c.txt的。

現(xiàn)在我一運行,左邊就出現(xiàn)了。

所以說w模式下,如果文件路徑不存在,就會創(chuàng)建一個空白文件。毫無疑問,文件指針也是位于開始位置。

既然文件路徑不存在就會創(chuàng)建空白文件,那如果文件路徑存在會發(fā)什么呢?

現(xiàn)在我在這個c.txt里面寫點內容,然后多復制幾行。

我們不保存的話,pycharm也會幫我們自動保存的。

現(xiàn)在這個c.txt是存在的對吧,而且里面也有內容,然后我再來運行一次這個代碼。

現(xiàn)在看好像沒什么異常,但是當我們打開c.txt的時候看到剛剛里面寫的全部不見了。

所以說w模式下,當文件存在的時候會清空文件內容,然后文件指針也會停在開始位置。

所以你千萬不要用w模式打開你重要的文件,只要你用w模式打開了,你的文件也報廢了。

現(xiàn)在我在子代碼塊里嘗試一下f.read()來運行看看。

直接報錯了,說不可讀。

這樣就驗證了我們說w模式是只寫模式,只能寫不能讀。

然后我們要寫內容的話,就要調用一個功能了。叫f.write()。

我們可以給它傳一個字符串,因為是t模式嗎!讀寫都是以字符串為單位。

with open(r'G:\PythonProject\學習\學習文件\date\c.txt', mode='wt', encoding='utf-8') as f:
    f.write('曉看天色暮看云')

這樣就可以把這個字符串寫入到這個文件里面,然后我們再來運行一下。

打開c.txt。

這樣就把數(shù)據(jù)寫進去了。

你注意看這個文件,是沒有換行的,如果想換行的話,就得在要寫入的字符串后面加一個\n。

with open(r'G:\PythonProject\學習\學習文件\date\c.txt', mode='wt', encoding='utf-8') as f:
    f.write('曉看天色暮看云\n')

現(xiàn)在再來運行一次。

看!這里換行就出現(xiàn)了。

注意,這不是在后面加了一個\n,而是w模式會在文件存的時候清空文件,所以治理不是直接在后面加了\n。

是清空之后重新寫了內容。

我們新寫的內容有換行符,如果我再寫一個f.write(),里面再加一\n,會發(fā)生什么?

with open(r'G:\PythonProject\學習\學習文件\date\c.txt', mode='wt', encoding='utf-8') as f:
    f.write('曉看天色暮看云\n')
    f.write('唧唧復唧唧\n')

這個操作就不會清空原來的內容了,因為w模式只會在打開的時候清空文件內容,我們后面再來執(zhí)行f.write()就會接著前面的內容繼續(xù)寫。

如果你想在w模式下繼續(xù)寫入內容,必須是再with的子代碼下寫才可以,或者說必須在文件關閉之前繼續(xù)寫才可以。

如果你分別融了兩個with語法來寫的話,只會出現(xiàn)最后一次寫入的內容。

未經(jīng)允許不得轉載:445IT之家 » Python W模式

贊 (0) 打賞

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

微信掃一掃打賞