下面我将为您讲解如何通过Python脚本执行CMD命令并返回结果。
第一步:使用subprocess模块执行CMD命令
Python中的subprocess模块提供了执行外部命令的方法,其中Popen方法可以创建一个新的进程来执行指定的命令。以下是一个简单的示例,演示如何使用subprocess模块执行CMD命令:
import subprocess
# 要执行的CMD命令
command = 'dir'
# 执行CMD命令
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 获取执行结果
out, err = p.communicate()
# 打印执行结果
print(out.decode('gbk'))
在上面的示例中,我们使用Popen方法执行了一个简单的CMD命令“dir”,并将执行结果保存在out和err变量中。最后,我们使用print语句打印out变量中保存的执行结果。
第二步:处理CMD命令的输出结果
由于subprocess模块执行CMD命令返回的结果是bytes类型,因此我们需要使用decode方法将其转换为字符串类型。在Windows系统下,CMD命令输出结果中的中文默认使用gbk编码,因此我们需要使用decode('gbk')方法将其转换为unicode字符集。
为了更好的展示如何处理CMD命令的输出结果,下面我们将使用两个示例来说明:
示例一:获取当前目录下的文件名列表
我们可以使用CMD命令“dir /b”获取当前目录下的文件名列表,并将其保存在一个列表变量中。以下是完整的示例代码:
import subprocess
# 要执行的CMD命令
command = 'dir /b'
# 执行CMD命令
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 获取执行结果
out, err = p.communicate()
# 将结果转换为列表
file_list = out.decode('gbk').strip().split('\r\n')
# 打印文件列表
print(file_list)
在上面的示例中,我们使用CMD命令“dir /b”获取当前目录下的文件名列表,并将执行结果保存在out变量中。然后,我们将out变量中保存的字符串按照换行符“\r\n”进行分割,并将结果存储在一个名为file_list的列表变量中。
最后,我们使用print语句打印file_list变量中的文件列表。
示例二:获取系统环境变量
我们可以使用CMD命令“set”获取当前系统的环境变量,并将其保存在一个字典变量中。以下是完整的示例代码:
import subprocess
# 要执行的CMD命令
command = 'set'
# 执行CMD命令
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
# 获取执行结果
out, err = p.communicate()
# 将结果转换为字典
env_dict = dict(x.split('=', 1) for x in out.decode('gbk').strip().split('\r\n'))
# 打印环境变量
print(env_dict['PATH']) # 输出系统的Path环境变量
在上面的示例中,我们使用CMD命令“set”获取当前系统的环境变量,并将执行结果保存在out变量中。然后,我们将out变量中保存的字符串按照换行符“\r\n”进行分割,并将结果存储在一个名为env_dict的字典变量中。
最后,我们使用print语句打印env_dict字典变量中的环境变量。在这个示例中,我们输出了系统的Path环境变量。
希望这些示例能够帮助你理解如何使用Python脚本执行CMD命令并返回结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python脚本执行CMD命令并返回结果的例子 - Python技术站