在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
。