如何从os.system()获取输出?
如何从os.system()获取输出?
这个问题已经有了答案:
我想从os.system(\"nslookup google.com\")
获取输出,但是每次打印时我都得到0
。为什么会这样,我该怎么解决?(Python 3,Mac)
(我看了如何在Python中存储os.system已经打印到stdout的返回值? - 但我没理解它 〜 我是Python新手)
admin 更改状态以发布 2023年5月25日
使用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_output是subprocess.Popen的便利包装器,可以简化您的用例。