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

pobjuy32  于 2021-08-25  发布在  Java
关注(0)|答案(1)|浏览(466)

此问题已在此处找到答案

运行shell命令并捕获输出(19个答案)
12个月前关闭。
我想从中获得输出 os.system("nslookup google.com") 但是相反,我总是 0 ,打印时。为什么会这样,我该如何解决(python 3(mac)
(我研究了如何存储它在python中打印到标准输出的os.system的返回值?-但我不明白~我是python新手)

ioekq8ef

ioekq8ef1#

使用 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)

system仅返回命令的退出代码。在这里 0 意味着成功。任何其他数字表示与操作系统相关的错误。输出到该进程的标准输出。子流程打算替换 os.system .
subprocess.check_output是subprocess.popen的一个方便的 Package 器,它简化了您的用例。

相关问题