📅  最后修改于: 2023-12-03 15:39:42.997000             🧑  作者: Mango
有时候我们需要在 Python 中执行一些外部命令,并获取命令执行的输出结果。Python 提供了多种方式供我们实现这个功能,本文将为大家介绍其中几种常用方法。
subprocess 模块是 Python 标准库中一个用于创建新进程的模块,它提供了一个类 Popen,可以用来执行任意外部命令,并获取命令执行的输出结果。
import subprocess
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode())
上述代码中,使用 subprocess.run 方法执行了一个 ls -l 命令,并使用 stdout=subprocess.PIPE 指定了标准输出流,将命令执行的结果保存到 result 变量中,最后使用 decode() 方法将字节数组转换为字符串并打印输出。
在 Python 中,os 模块也提供了在子进程中执行命令的方法,并获取输出结果。os 模块提供的方法为 os.popen,使用方法与 subprocess.run 类似。
import os
result = os.popen('ls -l').read()
print(result)
上述代码中,使用 os.popen 方法执行了一个 ls -l 命令,并使用 read() 方法获取命令执行的结果,最后将结果打印输出。
commands 模块是 Python 2.x 中提供的一个模块,用于执行命令并获取输出结果。在 Python 3.x 中该模块已被移除,但是我们可以通过 subprocess.run 来替代。
import commands
status, result = commands.getstatusoutput('ls -l')
print(result)
上述代码中,使用 commands.getstatusoutput 方法执行了一个 ls -l 命令,并从执行结果中获取输出结果,将结果打印输出。
以上介绍的是几种 Python 中执行命令并获取输出结果的方法,大家可以根据自己的需求选择使用。