在Python中,你可以使用subprocess
模块来调用外部命令
import subprocess
# 使用subprocess.run()执行外部命令
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)
# 打印执行结果
print(result.stdout)
在这个例子中,我们使用subprocess.run()
函数执行了ls -l
命令。capture_output=True
表示我们希望捕获命令的输出,而text=True
表示我们希望将输出作为文本处理(而不是字节)。
subprocess.run()
返回一个subprocess.CompletedProcess
对象,它包含了命令的返回码、标准输出和标准错误等信息。在这个例子中,我们只打印了标准输出。
如果你需要执行更复杂的命令,可以使用subprocess.Popen
类。这里有一个例子:
import subprocess
# 创建一个Popen对象
process = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
# 获取命令的输出
stdout, stderr = process.communicate()
# 打印执行结果
print(stdout)
print(stderr)
# 检查命令是否成功执行
if process.returncode == 0:
print("Command executed successfully.")
else:
print("Command execution failed.")
在这个例子中,我们使用subprocess.Popen
创建了一个子进程来执行ls -l
命令。我们使用stdout
和stderr
参数将命令的输出重定向到管道,然后使用communicate()
方法获取输出。最后,我们检查命令的返回码以确定它是否成功执行。