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

d.m*_*mc2 4 python while-loop raspberry-pi

我目前正在将无限循环中的数据写入覆盆子pi上的SD卡.

file = open("file.txt", "w")
while True:
    file.write( DATA )
Run Code Online (Sandbox Code Playgroud)

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

open("file.txt", "a")
Run Code Online (Sandbox Code Playgroud)

附加到文件并定期关闭txt文件并再次打开它.在运行无限循环时,有更好的方法可以安全地存储数据吗?

Aya*_*Aya 11

文件的write()方法不一定将数据写入磁盘.你必须调用flush()方法来确保发生这种情况......

file = open("file.txt", "w")
while True:
    file.write( DATA )
    flle.flush()
Run Code Online (Sandbox Code Playgroud)

不要担心引用os.fsync()- 操作系统会假装数据已写入磁盘,即使它实际上没有.