我在我的raspberry pi上运行了一个在启动时运行的python脚本(它工作得很好),我想将输出附加到现有的文本文件中。我在/etc/rc.local文件中获得了这段代码(我用cron尝试了同样的方法,但由于某种原因,它甚至无法启动脚本)。
python3 /home/pi/script.py >> /home/pi/log.txt
不幸的是,无论我怎么尝试,日志文件总是空的,除非我直接运行相同的命令,并通过按ctrl+c而不是ctrl+z来中止脚本。脚本似乎必须以正确的方式关闭,然后才能向文件写入任何内容,但我希望它在每次输出时都逐步保存文件。
编辑:我解决了这个问题。显然,只有在填满一定数量的内存或脚本完成后才写入文件是很正常的(在我的例子中从来没有这样的情况,因为我总是在这种情况发生之前重新启动pi )。添加标志-u以立即写入文件。
python3 -u /home/pi/script.py >> /home/pi/log.txt
发布于 2018-07-06 04:34:21
如果您使用print输出文本,其参数flush
可能会对您有所帮助:
print('Hello, World', flush=True)
否则:
import sys
sys.stdout.write('Hello, world\n')
sys.stdout.flush()
也会有同样的效果。
https://stackoverflow.com/questions/51199339
复制相似问题