Syn*_*lat 13 bash python-3.x raspberry-pi3
我在树莓派上启动时运行了一个 python 脚本(工作正常),我想将输出附加到现有的文本文件中。我在我的 /etc/rc.local 文件中得到了这个代码(我用 cron 尝试了同样的方法,但由于某种原因它甚至没有启动脚本)。
python3 /home/pi/script.py >> /home/pi/log.txt
Run Code Online (Sandbox Code Playgroud)
不幸的是,无论我尝试什么,日志文件总是空的,除非我直接运行相同的命令并通过按 ctrl+c 而不是 ctrl+z 中止脚本。似乎脚本在向文件写入任何内容之前必须以正确的方式关闭,但我希望它逐渐保存每个输出的文件。
编辑:我解决了。显然,只有在填充一定数量的内存或脚本完成后才会写入文件是正常的(这在我的情况下从未发生过,因为我总是在这之前重新启动 pi)。添加标志 -u 以立即写入文件。
python3 -u /home/pi/script.py >> /home/pi/log.txt
Run Code Online (Sandbox Code Playgroud)
如果您使用print来输出文本,它的参数flush
可能会帮助您:
print('Hello, World', flush=True)
Run Code Online (Sandbox Code Playgroud)
除此以外:
import sys
sys.stdout.write('Hello, world\n')
sys.stdout.flush()
Run Code Online (Sandbox Code Playgroud)
会有同样的效果。
归档时间: |
|
查看次数: |
4508 次 |
最近记录: |