我的代码如下所示:
import subprocess
def run_command(command):
p = subprocess.Popen(command, shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT)
while p.poll() is None:
print "Loading mWorker... please wait"
time.sleep(2)
return p.communicate()
我最初认为 p.communicate() 应该在 while 语句之前。但是我发现如果它没有放在方法的末尾,这个函数调用将会挂起(例如,在返回提示之后我看不到任何东西)。如果我运行如上所示的方法,我只会得到 1 个打印语句,然后
Traceback (most recent call last):
File "<stdin>", line 1, in ?
File "python.py", line 10, in run_command
time.sleep(2)
NameError: global name 'time' is not defined
为什么我会看到这个?为什么时间不工作不止一次?我需要进行哪些更改才能继续看到打印声明?