亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從無限While循環保存到文本文件

從無限While循環保存到文本文件

幕布斯6054654 2021-03-18 18:14:56
我目前正在將數據從無限while循環寫入樹莓派上的SD卡。file = open("file.txt", "w")while True:    file.write( DATA )如果程序不是通過命令或鍵盤中斷關閉的,有時file.txt并不總是保存。是否有定期的方法來保存并確保數據被保存?我正在考慮使用open("file.txt", "a")附加到文件并定期關閉txt文件,然后再次打開它。在通過無限while循環運行時,是否存在更好的安全存儲數據的方法?
查看完整描述

3 回答

?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

文件的write()方法不一定會將數據寫入磁盤。您必須調用該flush()方法以確保發生這種情況...


file = open("file.txt", "w")

while True:

    file.write( DATA )

    flle.flush()

不用擔心os.fsync()對它的引用-操作系統會假裝實際上已經將數據寫入磁盤。


查看完整回答
反對 回復 2021-03-29
?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

使用with語句-確保文件自動關閉!


with open("file.txt", "w") as myFile:

    myFile.write(DATA)

本質上,在這種情況下,with語句將執行以下操作:


try:

    myFile = open("file.txt", "w") 

    do_stuff()


finally:

    myFile.close()

確保您將關閉文件,并保存寫入文件的信息。


查看完整回答
反對 回復 2021-03-29
?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

如果您異常退出程序,那么您可能會期望有時無法正確關閉該文件。

每次寫入后打開和關閉文件都不會執行此操作,因為打開文件時仍有機會中斷程序。

CTRL-C退出程序的等效方法是低級的。就像“立即離開,生火了,請救自己”,然后程序會自動掛起。

如果您想清理文件,則將中斷語句放入代碼中。這樣,您就可以優雅地處理關閉操作。


查看完整回答
反對 回復 2021-03-29
  • 3 回答
  • 0 關注
  • 248 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號