对于一些需要在命令行执行命令的操作,我们可以使用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等模块进行调用,根据不同的需求选择不同的模块即可。