我目前正在将无限循环中的数据写入树莓派上的 SD 卡。
file = open("file.txt", "w")
while True:
file.write( DATA )
如果程序没有通过命令或键盘中断关闭,有时 file.txt 似乎并不总是保存。是否有定期保存和确保数据保存的方法?我正在考虑使用
open("file.txt", "a")
附加到文件并定期关闭 txt 文件并再次打开它。在无限循环中运行时,是否有更好的方法来安全地存储数据?
我目前正在将无限循环中的数据写入树莓派上的 SD 卡。
file = open("file.txt", "w")
while True:
file.write( DATA )
如果程序没有通过命令或键盘中断关闭,有时 file.txt 似乎并不总是保存。是否有定期保存和确保数据保存的方法?我正在考虑使用
open("file.txt", "a")
附加到文件并定期关闭 txt 文件并再次打开它。在无限循环中运行时,是否有更好的方法来安全地存储数据?
使用 with 语句——它将确保文件自动关闭!
with open("file.txt", "w") as myFile:
myFile.write(DATA)
本质上,在这种情况下 with 语句的作用是:
try:
myFile = open("file.txt", "w")
do_stuff()
finally:
myFile.close()
向您保证该文件将被关闭,并且写入该文件的信息将被保存。
有关 with 语句的更多信息可以在这里找到:PEP 343
如果您异常退出程序,那么您应该预料到有时文件不会正确关闭。
每次写入后打开和关闭文件都不会这样做,因为在文件打开时您仍然有可能中断程序。
相当于CTRL-C
退出程序的方法是低级的。就像,“现在出去,着火了,救自己”,然后程序就挂了。
如果您想要干净地关闭您的文件,请将中断语句放入您的代码中。这样你就可以优雅地处理关闭。
关闭文件并再次将代码写入文件。并尝试选择 a+ 模式