好的,我设法在没有线程的情况下解决了这个问题(如果建议使用线程会更好),可以使用这个问题中的一个片段。在子进程运行时拦截子进程的stdoutdef execute(command):
process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
# Poll process for new output until finished
while True:
nextline = process.stdout.readline()
if nextline == '' and process.poll() is not None:
break
sys.stdout.write(nextline)
sys.stdout.flush()
output = process.communicate()[0]
exitCode = process.returncode if (exitCode == 0):
return output else:
raise ProcessException(command, exitCode, output)