自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
在實例01中,雖然創建并打開一個文件,但是該文件中并沒有任何內容,它的大小是0KB。Python的文件對象提供了write()方法,可以向文件中寫入內容。write()方法的語法格式如下:
file.write(string)
其中,file為打開的文件對象;string為要寫入的字符串。
注意:在調用write()方法向文件中寫入內容的前提是在打開文件時,指定的打開模式為w(可寫)或者a(追加),否則,將拋出如圖7所示的異常。
圖7??沒有寫入權限時拋出的異常
場景模擬:在螞蟻莊園的動態欄目中記錄著莊園里的新鮮事。在給小雞喂食后,使用了一張加速卡,此時,需要向莊園的動態欄目中寫入一條動態。
??實例02??向螞蟻莊園的動態文件寫入一條信息
在IDLE中創建一個名稱為antmanor_message_w.py的文件,然后在該文件中,首先應用open()函數以寫方式打開一個文件,然后再調用write()方法向該文件中寫入一條動態信息,再調用close()方法關閉文件,代碼如下:
print("\n","="*10,"螞蟻莊園動態","="*10)
file =?open('message.txt','w')???? ????#?創建或打開保存螞蟻莊園動態信息的文件
#?寫入一條動態信息
file.write("你使用了1張加速卡,小雞擼起袖子開始雙手吃飼料,進食速度大大加快。\n")
print("\n?寫入了一條動態……\n")
file.close()????????????????? ????#?關閉文件對象
執行上面的代碼,將顯示如圖8所示的結果,同時在antmaner_message_w.py文件所在的目錄下創建一個名稱為message.txt的文件,并且在該文件中寫入了文字“你使用了1張加速卡,小雞擼起袖子開始雙手吃飼料,進食速度大大加快”,如圖9所示。
圖8??創建并打開記錄螞蟻莊園動態的文件
圖9??打開記錄螞蟻莊園動態的文件
注意:在寫入文件后,一定要調用close()方法關閉文件,否則寫入的內容不會保存到文件中。這是因為當我們在寫入文件內容時,操作系統不會立刻把數據寫入磁盤,而是先緩存起來,只有調用close()方法時,操作系統才會保證把沒有寫入的數據全部寫入磁盤。
多學兩招:在向文件中寫入內容后,如果不想馬上關閉文件,也可以調用文件對象提供的flush()方法,把緩沖區的內容寫入文件,這樣也能保證數據全部寫入磁盤。
向文件中寫入內容時,如果打開文件采用w(寫入)模式,則先清空原文件中的內容,再寫入新的內容;而如果打開文件采用a(追加)模式,則不覆蓋原有文件的內容,只是在文件的結尾處增加新的內容。下面將對實例02的代碼進行修改,實現在原動態信息的基礎上再添加一條動態信息。修改后的代碼如下:
print("\n","="*10,"螞蟻莊園動態","="*10)
file =?open('message.txt','a')????#?創建或打開保存螞蟻莊園動態信息的文件
#?追加一條動態信息
file.write("mingri的小雞在你的莊園待了22分鐘,吃了6g飼料之后,被你趕走了。\n")
print("\n?追加了一條動態……\n")
file.close()??????????????? ????#?關閉文件對象
執行上面的代碼后,打開message.txt文件,將顯示如圖10所示的結果。
圖10??追加內容后的message.txt文件
多學兩招:在Python的文件對象中除了提供了write()方法,還提供了writelines()方法,可以實現把字符串列表寫入文件,但是不添加換行符。