如何使用Python执行cmd命令

在日常工作中,我们经常需要在Python程序中执行一些cmd命令,比如调用系统命令进行文件操作、网络操作或者其他一些操作。本文将详细介绍如何使用Python执行cmd命令,包括基本的cmd命令执行、获取cmd命令的输出以及异常处理等内容。

使用subprocess模块执行cmd命令

Python的subprocess模块可以帮助我们执行外部命令并获取其输出。下面是一个简单的示例,演示如何使用subprocess模块执行cmd命令:

import subprocess

# 执行cmd命令
result = subprocess.run(["ping", "www.baidu.com"], capture_output=True, text=True)

# 打印cmd命令的输出
print(result.stdout)

在上面的示例中,我们使用subprocess的run函数执行了ping www.baidu.com命令,并通过capture_output=True参数指定捕获该命令的输出,再通过text=True参数指定输出为文本形式。最后通过result.stdout获取命令的输出并打印出来。

获取cmd命令的输出

有时候我们不仅需要执行cmd命令,还需要获取其输出以便后续处理。subprocess模块提供了方便的方法来获取cmd命令的输出,下面是一个示例:

import subprocess

# 执行cmd命令并获取输出
result = subprocess.Popen(["dir", "/b"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)
output, error = result.communicate()

# 打印cmd命令的输出
print(output)

在上述示例中,我们使用Popen函数执行了dir /b命令(列出当前目录下的所有文件和文件夹的名称),并通过stdout=subprocess.PIPE参数指定获取stdout的输出,然后通过communicate方法获取输出并分别赋给output和error变量,最后打印output即可。

异常处理

在执行cmd命令的过程中,可能会出现一些异常情况,比如cmd命令执行失败、命令不存在等等。我们可以使用try-except结构来捕获这些异常情况,并做出相应的处理。

import subprocess

try:
    # 执行cmd命令
    result = subprocess.run(["ipconfig", "/all"], capture_output=True, text=True)
    print(result.stdout)
except subprocess.CalledProcessError as e:
    print(f"cmd命令执行出错:{e}")
except FileNotFoundError:
    print("cmd命令不存在")

在上面的示例中,我们执行了一个错误的cmd命令ipconfig /all,这会导致一个FileNotFoundError异常。我们通过try-except结构捕获了这个异常并进行了相应的处理。

使用Python执行常用cmd命令

下面是一些常用的cmd命令及其在Python中的调用方式:

  • 执行ping命令:
import subprocess

result = subprocess.run(["ping", "www.google.com"], capture_output=True, text=True)
print(result.stdout)

执行查看文件列表命令dir:

import subprocess

result = subprocess.run(["dir"], capture_output=True, text=True)
print(result.stdout)

执行查看系统信息命令ipconfig:

import subprocess

result = subprocess.run(["ipconfig"], capture_output=True, text=True)
print(result.stdout)

总结

本文介绍了如何使用Python执行cmd命令,包括基本的cmd命令执行、获取cmd命令的输出以及异常处理等内容。通过subprocess模块,我们可以方便地调用系统命令并获取输出,实现了Python与cmd命令的无缝连接。