在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
命令。stdout
和stderr
参数分别用于捕获命令的标准输出和错误输出。text=True
表示以文本模式处理输出,而不是字节模式。shell=True
表示在shell中执行命令,这在执行包含管道、重定向等特性的命令时非常有用。
注意:在使用shell=True
时,务必小心,因为它可能会导致安全漏洞,特别是当执行的命令包含用户提供的输入时。在这种情况下,最好使用命令序列(列表形式)而不是命令字符串,并避免使用shell=True
。