如何从os.popen获取完整的执行信息

时间:2019-11-28 06:04:34

标签: python-3.x

我正在尝试pip install其他代码需要的某些模块。如果os.system("pip install module_name")返回1,我想检查失败的原因。

我尝试使用os.popen()来获取一些额外的信息,但是os.popen("pip install module_name").read()仅返回了执行信息的第一行。

有人碰巧知道如何获取完整的信息,以便我可以记录下来并在以后进行修复吗?

1 个答案:

答案 0 :(得分:0)

os.popen不是很强大。使用subprocess.Popencommunicate

import subprocess

p = subprocess.Popen("pip3 install module_name",
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        shell=True)
stdout, stderr = p.communicate()

print("STATUS:", p.returncode)
print("STDOUT:", stdout)
print("STDERR:", stderr)