当我调用另一个python脚本时,我要在python中获得打印功能的实时输出效果。例如script1.py会打印10000个数字。脚本script2.py将执行script1.py并将显示所有打印结果。我在Google上搜索,并且使用了类似的内容:
sudo port select --set python python27-apple
但是我得到的结果例如是100个数字是 最近输出读取=数字:1 2号 数:3 数:4 数:5 数:6 数:7 数:8 数:9
最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取=
答案 0 :(得分:0)
path_to_file = os.path.dirname(os.path.abspath(__file__)) + "/files/" + script_name
command = "python " + path_to_file
process_handle = Popen(command, shell=True, stdout=PIPE)
while process_handle.poll() is None:
for line in iter(process_handle.stdout.readline, ""):
output = line.decode('utf-8')
if output != '':
print('Last number is: ' + output)
在您的代码将首先读取程序的整个输出然后进行管道传输之前,因此将管道传输'0/n1/n2/n'
等,而不是单独传输'0\n', '1\n', '2\n'
。
解决方案是这样连续读取数据输出。