子流程STDOUT未启用

时间:2018-11-15 16:29:32

标签: python-3.x subprocess stdout

浏览了几乎所有相关文章并尝试了所有内容后,我无法完成这项工作,非常感谢您的浏览。

我编写了以下代码以从第一个脚本激活第二个脚本:

proc = subprocess.Popen(['python', path_calculator + 
'calculator.py'], stdout=subprocess.PIPE)
for line in proc.stdout:
    sys.stdout.buffer.write(line)
    sys.stdout.buffer.flush()
    line = str(line)
    line = line[2:]
    line = line[:-3]

此代码的目的是在第一个脚本中获取“计算器”的实时输出,因为其他脚本取决于该输出。 该代码确实提供了正确的输出,但是仅在“计算器”完成时才提供。然后一口气输出所有数据。这还不够。我需要输出从“计算器”出来的那一刻。

有趣的是,它实际上可以在Mac上运行,但无法在Windows上运行。 **几个小时后,我发现它不是可以在我的Mac上运行,而是可以在Pycharm(我在我的mac上使用)上运行。如果我在Mac上的终端中运行它,那么它也不起作用。

有什么建议吗?

0 个答案:

没有答案