无限b''问题运行Shell脚本通过烧瓶

时间:2020-04-27 05:17:29

标签: python shell flask

这是第一次问问题。

在sh文件中,它可以运行virtualenv和Python文件。 python文件是用于深度学习的文件。花了一段时间。

我想在网页上实时打印出Python文件的输出。 但是当我使用此代码时,在打印正确的输出后,打印了无穷b''行。

救救我。

def uploaded():
    def inner():
        proc = subprocess.Popen('./some.sh', stderr=PIPE, stdout=PIPE, shell=True, executable="/bin/bash")

        for line in iter(proc.stdout.readline,''):
            string = line.rstrip()
            print(string)
            yield string + b'<br/>\n'

        for line in iter(proc.stderr.readline,''):
            string = line.rstrip()
            print(string)
            yield string + b'<br/>\n'

    return Response(inner(), mimetype='text/html')

1 个答案:

答案 0 :(得分:0)

您的readline调用似乎正在返回bytes实例,但是使用两个参数的iter调用,您正在将其与空的str实例进行比较, '',而不是空的bytes实例b''。这些不相等,因此循环永远运行。尝试使用iter(proc.stdout.readline, b'')iter(proc.stderr.readline, b'')进行迭代。