【发布时间】:2023-03-08 20:04:01
【问题描述】:
我正在运行这样的命令:
python mycode.py | tee foobar.log
这段代码对标准输出做了很多“打印”,没有管道我可以立即看到一些输出。然而,使用管道和三通,我需要很长时间才能看到第一个输出,然后是很多输出。看起来有些缓冲区正在等待填充,只有当它已满时,它才会立即转储所有内容。 我不确定是 tee、python 还是 ubuntu 问题。例如,ipython 也会出现同样的问题。 该怎么办?
谢谢!
【问题讨论】:
-
使用标准输出可能会有所帮助。试一试。
-
这不可能是另一个问题的重复,因为我在这里接受的答案将是一个非常不正确的答案(在 C++ 中当然没有使用 Python 命令行的直接等价物影响程序行为的选项)。那里的答案可以适应在 Python 中使用,但在这种情况下并不是最好的方法。
-
我同意@SteveJessop,这里接受的答案除了另一个问题的答案之外,还为这个问题增加了价值,我实际上使用了现在的答案。其他问题的链接很有用,但不重复。