【发布时间】:2017-01-08 08:52:03
【问题描述】:
我需要从 bash 命令中获取信息,这需要几秒钟的时间。我希望程序的其余部分继续运行,直到我得到返回码。我尝试使用多处理来做到这一点,但我无法获得子进程的返回码,尽管控制台打印了正确的返回码。
from multiprocessing import Process, Value
import subprocess
num = Value("d", 0.0)
class foo(object):
def __init__(self):
self.createProcess()
def createProcess(self):
p = Process(target=self.Process, args=(num,))
p.start()
...Do Stuff here in parallel...
def Process(self,n):
somebashParam = int(n.value)
p = subprocess.Popen("some -command"+str(somebashParam),shell=True)
out, err = p.communicate()
n.value = p.returncode
- 为什么控制台打印出正确的返回码但我抓不到?
- 在另一个新进程中启动子进程对我来说似乎很奇怪。有没有更好的方法?
【问题讨论】:
标签: python bash parallel-processing subprocess multiprocessing