在Python中,可以使用subprocess
模块来执行外部命令
import subprocess
def run_command(command):
try:
# 使用列表形式执行命令,避免shell注入风险
result = subprocess.run(command, check=True, text=True, capture_output=True)
print("Command output:", result.stdout)
except subprocess.CalledProcessError as e:
print("Error occurred while running the command:", e)
print("Command output (stderr):", e.stderr)
command = ["ls", "-l"]
run_command(command)
在这个示例中,我们定义了一个名为run_command
的函数,它接受一个命令列表作为参数。我们使用subprocess.run()
函数来执行命令,并设置check=True
以便在命令返回非零退出状态时引发subprocess.CalledProcessError
异常。我们还设置了text=True
和capture_output=True
以便以文本形式捕获命令的输出。
如果命令执行成功,我们将输出结果打印到控制台。如果命令执行失败,我们将捕获subprocess.CalledProcessError
异常,并打印错误信息和命令的输出(如果有)。