📅  最后修改于: 2023-12-03 14:52:31.451000             🧑  作者: Mango
在 Python 中,我们可以使用 subprocess
模块来执行终端命令并获取其结果。以下是一些常用的方法:
subprocess.run()
可以执行一个命令,并返回命令的执行结果。我们可以在函数的参数中指定命令,例如:
import subprocess
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode('utf-8'))
上述代码会执行 ls -l
命令,并返回命令的执行结果。由于我们设置了 stdout=subprocess.PIPE
,在获取结果时需要通过 result.stdout
属性获取输出,然后通过 decode()
方法将其转换为字符串格式。
subprocess.Popen()
可以创建一个新的进程来执行命令,并可以控制进程的输入输出。我们可以通过实例化 subprocess.Popen()
对象来执行命令,并通过 communicate()
方法获取命令的输出,例如:
import subprocess
process = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)
output, error = process.communicate()
print(output.decode('utf-8'))
上述代码会创建一个新的进程来执行 ls -l
命令,并通过 communicate()
方法获取命令的输出。输出结果会被保存在 output
变量中,可以通过 decode()
方法将其转换为字符串格式。
os.system()
可以在当前进程中执行一个命令,并等待命令执行完毕后返回结果。我们可以在函数的参数中指定命令,例如:
import os
result = os.system('ls -l')
print(result)
上述代码会在当前进程中执行 ls -l
命令,并返回命令的执行结果。返回值为命令的退出状态码。
在 Python 中,我们可以使用 subprocess
模块或 os.system()
函数来执行终端命令并获取命令的结果。其中,subprocess
模块的灵活性更高,可以控制进程的输入输出,而 os.system()
函数则更加简单易用。
更多关于 subprocess
模块的使用方法,可以查看官方文档 subprocess — Subprocess management。