温馨提示×

Python执行命令如何捕获

小樊
82
2024-11-16 22:51:52
栏目: 编程语言

在Python中,你可以使用subprocess模块来执行外部命令并捕获输出

import subprocess

# 要执行的外部命令,例如:ls
command = "ls"

# 使用subprocess.run()执行命令
result = subprocess.run(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, shell=True)

# 打印执行结果
print("命令输出:")
print(result.stdout)

print("错误输出:")
print(result.stderr)

# 检查命令是否成功执行
if result.returncode == 0:
    print("命令执行成功")
else:
    print("命令执行失败,返回码:", result.returncode)

在这个示例中,我们使用subprocess.run()函数执行了一个简单的ls命令。stdoutstderr参数分别用于捕获命令的标准输出和错误输出。text=True表示以文本模式处理输出,而不是字节模式。shell=True表示在shell中执行命令,这在执行包含管道、重定向等特性的命令时非常有用。

注意:在使用shell=True时,务必小心,因为它可能会导致安全漏洞,特别是当执行的命令包含用户提供的输入时。在这种情况下,最好使用命令序列(列表形式)而不是命令字符串,并避免使用shell=True

0