Python实时输出另一个python脚本

时间:2018-08-23 16:25:51

标签: python-3.x

当我调用另一个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

最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取= 最后输出读取=

1 个答案:

答案 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'

解决方案是这样连续读取数据输出。