📜  执行命令并获取输出 python (1)

📅  最后修改于: 2023-12-03 15:39:42.997000             🧑  作者: Mango

执行命令并获取输出 Python

有时候我们需要在 Python 中执行一些外部命令,并获取命令执行的输出结果。Python 提供了多种方式供我们实现这个功能,本文将为大家介绍其中几种常用方法。

subprocess 模块

subprocess 模块是 Python 标准库中一个用于创建新进程的模块,它提供了一个类 Popen,可以用来执行任意外部命令,并获取命令执行的输出结果。

import subprocess

result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode())

上述代码中,使用 subprocess.run 方法执行了一个 ls -l 命令,并使用 stdout=subprocess.PIPE 指定了标准输出流,将命令执行的结果保存到 result 变量中,最后使用 decode() 方法将字节数组转换为字符串并打印输出。

os 模块

在 Python 中,os 模块也提供了在子进程中执行命令的方法,并获取输出结果。os 模块提供的方法为 os.popen,使用方法与 subprocess.run 类似。

import os

result = os.popen('ls -l').read()
print(result)

上述代码中,使用 os.popen 方法执行了一个 ls -l 命令,并使用 read() 方法获取命令执行的结果,最后将结果打印输出。

commands 模块

commands 模块是 Python 2.x 中提供的一个模块,用于执行命令并获取输出结果。在 Python 3.x 中该模块已被移除,但是我们可以通过 subprocess.run 来替代。

import commands

status, result = commands.getstatusoutput('ls -l')
print(result)

上述代码中,使用 commands.getstatusoutput 方法执行了一个 ls -l 命令,并从执行结果中获取输出结果,将结果打印输出。

以上介绍的是几种 Python 中执行命令并获取输出结果的方法,大家可以根据自己的需求选择使用。