Python调出CMD窗口
在Python中,我们可以使用subprocess
模块来调用CMD窗口。CMD窗口是Windows操作系统的命令行界面,可以通过执行命令行命令来与操作系统进行交互。本文将介绍如何使用Python来调出CMD窗口,并给出相应的代码示例。
subprocess模块简介
subprocess
模块是Python提供的用于管理子进程的标准库。它允许我们创建、执行和控制额外的进程,包括调用CMD窗口执行命令。通过subprocess
模块,我们可以在Python代码中执行外部程序,并与其进行交互。
调用CMD窗口的实例
下面的示例演示了如何在Python中调用CMD窗口,并执行一条简单的命令。
import subprocess
# 调用CMD窗口,并执行命令
subprocess.call('cmd /k echo Hello, World!', shell=True)
上面的代码中,subprocess.call()
函数用于调用CMD窗口。其中,cmd /k
是CMD窗口的命令行参数,echo Hello, World!
是要执行的命令。shell=True
表示要在子进程中运行命令。
运行以上代码,将会弹出一个CMD窗口,并显示Hello, World!
,如下图所示:

# 打印CMD窗口的输出
print(result.stdout)
上面的代码中,subprocess.run()
函数用于调用CMD窗口。其中,cmd /k dir
是要执行的命令,y\n
是要发送给CMD窗口的输入(此处以目录dir
命令的询问为例)。capture_output=True
表示要捕获CMD窗口的输出,text=True
表示以文本形式输出。
运行以上代码,将会弹出一个CMD窗口,并显示当前目录的文件列表。同时,Python代码将会打印CMD窗口的输出,如下图所示:
驱动器 C 中的卷是 System
卷的序列号是 C0B4-7CA8
C:\ 的目录
2021/01/01 下午 01:00 <DIR> .
2021/01/01 下午 01:00 <DIR> ..
2021/01/01 下午 01:00 0 test.txt
1 个文件 0 字节
2 个目录 144,512,419,328 可用字节
使用Popen对象操作CMD窗口
除了subprocess.call()
和subprocess.run()
函数外,subprocess
模块还提供了subprocess.Popen()
类用于更复杂的CMD窗口操作。下面的示例演示了如何使用Popen
对象来调用CMD窗口并执行命令。
import subprocess
# 创建Popen对象,并调用CMD窗口
cmd = subprocess.Popen('cmd', stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, shell=True)
# 发送命令到CMD窗口
cmd.stdin.write('echo Hello, World!\n')
cmd.stdin.flush()
# 获取CMD窗口的输出
output = cmd.stdout.read()
# 打印CMD窗口的输出
print(output)
上面的代码中,首先创建了一个Popen
对象,并通过subprocess.PIPE
来重定向CMD窗口的输入、输出和错误输出。然后,通过stdin.write()
方法向CMD窗口发送命令,并通过stdin.flush()
方法刷新输入。最后,通过stdout.read()
方法获取CMD窗口的输出,并打印出来。
运行以上代码,将会弹出一个CMD窗口,并显示Hello, World!
。