如何从os.system()获取输出?

33 浏览
0 Comments

如何从os.system()获取输出?

这个问题已经有了答案:

运行shell命令并捕获输出

我想从os.system(\"nslookup google.com\")获取输出,但是每次打印时我都得到0。为什么会这样,我该怎么解决?(Python 3,Mac)

(我看了如何在Python中存储os.system已经打印到stdout的返回值? - 但我没理解它 〜 我是Python新手)

admin 更改状态以发布 2023年5月25日
0
0 Comments

使用subprocess

import subprocess
print(subprocess.check_output(['nslookup', 'google.com']))

如果返回值不是零,它会引发一个CalledProcessError异常:

try:
    print(subprocess.check_output(['nslookup', 'google.com']))
except subprocess.CalledProcessError as err:
    print(err)

os.system仅返回命令的退出代码。在这里,0表示成功。任何其他数字都表示特定于操作系统的错误。输出将进入此进程的标准输出。 subprocess旨在替换os.system

subprocess.check_outputsubprocess.Popen的便利包装器,可以简化您的用例。

0