您的位置:

如何使用Python调用CMD执行命令

对于一些需要在命令行执行命令的操作,我们可以使用Python来轻松实现。本文将介绍如何使用Python调用CMD执行命令。

一、使用os模块执行CMD命令

Python提供了os模块,可以方便地进行系统调用,实现调用CMD命令的操作。

先来看一个简单的示例,调用dir命令列出当前文件夹的内容:

import os

os.system('dir')

通过os.system()函数,可以将待执行的命令传入进去,即可完成CMD命令的执行,上述代码将会执行dir命令,输出当前文件夹的内容。

除了使用单一命令之外,os模块还提供了更加复杂的调用方法。例如,可以通过subprocess模块来调用CMD命令,并获取输出结果:

import subprocess

result = subprocess.Popen('dir', shell=True, stdout=subprocess.PIPE)
output = result.communicate()[0]

print(output.decode('gbk'))

使用subprocess.Popen()方法后,可以通过communicate()方法获取到CMD的输出结果,通过decode()方法指定输出编码,保证得到正确的输出。

二、使用subprocess模块调用CMD命令

除了os模块,Python还提供了subprocess模块,可以更加灵活地进行系统调用,适用于各种系统平台。

使用subprocess模块调用CMD命令也非常简单,还是以调用dir命令为例:

import subprocess

output = subprocess.check_output('dir', shell=True)
print(output.decode('gbk'))

使用subprocess.check_output()方法可以方便地调用CMD命令,并获取到输出结果,通过decode()方法指定输出编码可以避免乱码。

subprocess模块还提供了更加灵活的调用方式,可以通过创建子进程并返回进程对象来控制命令的执行:

import subprocess

process = subprocess.Popen('dir', shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
output, errors = process.communicate()

print(output.decode('gbk'))

通过subprocess.Popen()方法创建子进程并返回进程对象,可以通过stdout和stderr参数获取输出结果和错误信息。

三、使用pywin32调用CMD命令

对于Windows系统,还可以使用pywin32模块调用CMD命令,该模块可以让Python调用Windows系统的API。

使用pywin32模块调用CMD命令需要先安装,可以通过pip工具进行安装:

pip install pywin32

安装完成后,就可以使用相应的API调用CMD命令了,下面是一个简单的示例代码:

import win32api

win32api.WinExec('cmd /c dir')

通过win32api.WinExec()方法,可以直接启动CMD,并执行指定的命令。

总结

通过本文的介绍,我们可以看到,在Python中调用CMD命令非常简单,可以使用os、subprocess、pywin32等模块进行调用,根据不同的需求选择不同的模块即可。