首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将标准输出重定向到文件时,Python脚本不写入输出

将标准输出重定向到文件时,Python脚本不写入输出
EN

Stack Overflow用户
提问于 2018-07-06 04:25:42
回答 1查看 4.8K关注 0票数 13

我在我的raspberry pi上运行了一个在启动时运行的python脚本(它工作得很好),我想将输出附加到现有的文本文件中。我在/etc/rc.local文件中获得了这段代码(我用cron尝试了同样的方法,但由于某种原因,它甚至无法启动脚本)。

代码语言:javascript
运行
复制
python3 /home/pi/script.py >> /home/pi/log.txt 

不幸的是,无论我怎么尝试,日志文件总是空的,除非我直接运行相同的命令,并通过按ctrl+c而不是ctrl+z来中止脚本。脚本似乎必须以正确的方式关闭,然后才能向文件写入任何内容,但我希望它在每次输出时都逐步保存文件。

编辑:我解决了这个问题。显然,只有在填满一定数量的内存或脚本完成后才写入文件是很正常的(在我的例子中从来没有这样的情况,因为我总是在这种情况发生之前重新启动pi )。添加标志-u以立即写入文件。

代码语言:javascript
运行
复制
python3 -u /home/pi/script.py >> /home/pi/log.txt 
EN

回答 1

Stack Overflow用户

发布于 2018-07-06 04:34:21

如果您使用print输出文本,其参数flush可能会对您有所帮助:

代码语言:javascript
运行
复制
print('Hello, World', flush=True)

否则:

代码语言:javascript
运行
复制
import sys
sys.stdout.write('Hello, world\n')
sys.stdout.flush()

也会有同样的效果。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51199339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档