📜  如何在 pyton 中获取终端命令的结果 - Python (1)

📅  最后修改于: 2023-12-03 14:52:31.451000             🧑  作者: Mango

如何在 Python 中获取终端命令的结果

在 Python 中,我们可以使用 subprocess 模块来执行终端命令并获取其结果。以下是一些常用的方法:

使用 subprocess.run()

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() 可以创建一个新的进程来执行命令,并可以控制进程的输入输出。我们可以通过实例化 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()

os.system() 可以在当前进程中执行一个命令,并等待命令执行完毕后返回结果。我们可以在函数的参数中指定命令,例如:

import os

result = os.system('ls -l')
print(result)

上述代码会在当前进程中执行 ls -l 命令,并返回命令的执行结果。返回值为命令的退出状态码。

总结

在 Python 中,我们可以使用 subprocess 模块或 os.system() 函数来执行终端命令并获取命令的结果。其中,subprocess 模块的灵活性更高,可以控制进程的输入输出,而 os.system() 函数则更加简单易用。

更多关于 subprocess 模块的使用方法,可以查看官方文档 subprocess — Subprocess management