gpt4 book ai didi

python - 输出未正确重定向

转载 作者:太空宇宙 更新时间:2023-11-03 15:30:27 25 4
gpt4 key购买 nike

我正在通过 iTerm 在 bash 控制台上运行此命令

{ cd /usr/local/path/to/code; echo "hi1"; sudo chmod 777 /tmp/dissolve.log; echo "hi2"; python someapp/runner.py dissolve; echo "hi3"; } > /tmp/dissolve.log &

跟踪我得到的文件:

tail: /tmp/dissolve.log: file truncated
hi1
hi2

当我执行 cmd + c< 时,我无法弄清楚为什么我没有得到文件 python someapp/runner.py Dissolve 的输出/kbd>,预期输出出现在 tail 日志中。

来自runner.py的代码片段:

if __name__ == '__main__':
program_name = sys.argv[1]
if program_name == 'dissolve':
obj = SomeClass() # this is properly imported
obj.some_function() # this has lot of `print` statements, which i intened to catch in '/tmp/dissolve.log'

some_function() 中的初始 print 是否将值传递到 /tmp/dissolve.log 之外的其他位置?

有什么建议为什么会发生这种情况吗?

最佳答案

这看起来像 buffering问题,因为您将输出发送到文件。您可以使用 stdbuf 强制行缓冲,如下所示:

{ cd /usr/local/path/to/code;
echo "hi1";
sudo chmod 777 /tmp/dissolve.log;
echo "hi2";
stdbuf -oL python someapp/runner.py dissolve;
echo "hi3"; } > /tmp/dissolve.log &

关于python - 输出未正确重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42918599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com