Python执行CMD并获取输出

在开发过程中,有时候我们需要通过Python执行CMD命令并获取输出结果。Python提供了多种方法来执行CMD命令,本文将介绍其中的一种方法,并给出相应的代码示例。

subprocess模块

Python的subprocess模块是执行外部命令的标准库。它提供了创建新进程、连接输入/输出/错误管道以及捕获输出的功能。我们可以使用subprocess模块来执行CMD命令。

subprocess模块的基本用法

下面是subprocess模块中常用的几个函数和类:

  • subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None):运行命令,并等待命令完成。返回一个CompletedProcess对象,其中包含命令的执行结果。
  • subprocess.Popen(args, bufsize=-1, executable=None, stdin=None, stdout=None, stderr=None, preexec_fn=None, close_fds=True, shell=False, cwd=None, env=None, universal_newlines=False, startupinfo=None, creationflags=0, restore_signals=True, start_new_session=False, pass_fds=(), *, encoding=None, errors=None, text=None):执行命令,并立即返回一个Popen对象,可以通过该对象来控制进程。
  • subprocess.PIPE:管道常量,表示子进程的标准输入、输出或错误。

示例代码

下面是一个简单的例子,展示如何使用subprocess模块执行CMD命令并获取输出:

import subprocess

# 执行CMD命令
result = subprocess.run('dir', capture_output=True, shell=True, text=True)

# 获取输出结果
output = result.stdout

# 打印输出结果
print(output)

在上面的代码中,我们使用了subprocess.run()函数来执行dir命令,并将capture_output参数设置为True,以捕获命令的输出结果。然后,我们通过result.stdout属性获取输出结果,并将其打印出来。

运行以上代码,将会输出当前目录的文件列表。

总结

本文介绍了使用Python执行CMD命令并获取输出的方法。我们使用了subprocess模块中的subprocess.run()函数来执行CMD命令,并通过result.stdout属性获取输出结果。subprocess模块提供了更多的函数和类,可以满足更复杂的需求,可以根据实际情况选择适合的方法来执行CMD命令。

希望本文能帮助读者了解Python执行CMD命令的基本原理和方法,并在实际开发中能够灵活运用。如果你有任何问题或建议,请留言给我们。

参考文献

  • Python官方文档:[subprocess - Subprocess management](