在使用end参数从子流程管道打印时,Python不打印任何内容

5t7ly7z5  于 2023-01-04  发布在  Python
关注(0)|答案(1)|浏览(120)

我正在尝试使用子进程从另一个python脚本中运行另一个python脚本。(没有导入,我希望这适用于任何程序,不仅仅是python)
下面是第一个文件:第一个月

name = input("Sample input prompt: ")

下面是我用来运行任何shell命令的文件:test.py

import subprocess

proc = subprocess.Popen("python getting_input.py", stdout=subprocess.PIPE)
for char in iter(lambda: proc.stdout.read(1).decode('utf-8'), ''):
    print(char)  # This actually works, printing every character on a new line

但是,当我唯一更改的是将end=""添加到我的print语句时,绝对不会打印任何内容。

import subprocess

proc = subprocess.Popen("python getting_input.py", stdout=subprocess.PIPE)
for char in iter(lambda: proc.stdout.read(1).decode('utf-8'), ''):
    print(char, end="")  # This doesn't work, nothing at all gets printed... ????

我假设这是某种缓冲问题,但即使我用python -u test.py运行它,并在它内部使用python -u getting_input.py,我仍然没有看到输出。

相关问题