在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
类。以下是一个使用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)
在这个例子中,我们使用subprocess.Popen
创建了一个Popen对象,并通过stdout
和stderr
参数指定了命令的标准输出和标准错误。然后,我们使用process.communicate()
方法等待命令执行完成并获取输出。最后,我们打印了命令的标准输出和标准错误。