从无限While循环保存到文本文件

我目前正在将数据从无限while循环写入树莓派上的SD卡。


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

while True:

    file.write( DATA )

如果程序不是通过命令或键盘中断关闭的,有时file.txt并不总是保存。是否有定期的方法来保存并确保数据被保存?我正在考虑使用


open("file.txt", "a")

附加到文件并定期关闭txt文件,然后再次打开它。在通过无限while循环运行时,是否存在更好的安全存储数据的方法?


幕布斯6054654
浏览 217回答 3
3回答

qq_笑_17

文件的write()方法不一定会将数据写入磁盘。您必须调用该flush()方法以确保发生这种情况...file = open("file.txt", "w")while True:    file.write( DATA )    flle.flush()不用担心os.fsync()对它的引用-操作系统会假装实际上已经将数据写入磁盘。

慕慕森

使用with语句-确保文件自动关闭!with open("file.txt", "w") as myFile:    myFile.write(DATA)本质上,在这种情况下,with语句将执行以下操作:try:    myFile = open("file.txt", "w")     do_stuff()finally:    myFile.close()确保您将关闭文件,并保存写入文件的信息。

qq_遁去的一_1

如果您异常退出程序,那么您可能会期望有时无法正确关闭该文件。每次写入后打开和关闭文件都不会执行此操作,因为打开文件时仍有机会中断程序。CTRL-C退出程序的等效方法是低级的。就像“立即离开,生火了,请救自己”,然后程序会自动挂起。如果您想清理文件,则将中断语句放入代码中。这样,您就可以优雅地处理关闭操作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python