这是第一次问问题。
在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')
答案 0 :(得分:0)
您的readline
调用似乎正在返回bytes
实例,但是使用两个参数的iter
调用,您正在将其与空的str
实例进行比较, ''
,而不是空的bytes
实例b''
。这些不相等,因此循环永远运行。尝试使用iter(proc.stdout.readline, b'')
和iter(proc.stderr.readline, b'')
进行迭代。