我正在使用python代码启动脚本。此代码应启动在磁盘上写入文件的脚本,并等待脚本完成。
但每当我使用python启动此脚本时,结果文件不会超过65768字节,并且脚本不再响应。这是我在python中使用的内容:
p = subprocess.Popen(command,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
bufsize=-1)
p.wait()
其中command是脚本的命令。
有没有人知道这个问题的解决方案?
谢谢。
答案 0 :(得分:0)
from time import sleep
p = subprocess.Popen(command,
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
bufsize=-1)
output = ''
while p.poll() is None:
output += p.stdout.readline()+'\n' # <--- This is your magic
sleep(0.025)
output += p.stdout.read() # <--- And this is just to get the leftover data
print('Command finished')
p.stdout.close()
@JF就我提供的几乎所有Popen
答案发表评论时,除非您要进行utelize,否则不应定义stdout=...
,stdin=...
或stderr=...
他们。
因为它们会填满缓冲区并挂起你的应用程序。
但如果你这样做,请确保你&#34;点击&#34;从它那里偶尔。