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窗口示例](

控制CMD窗口的输入和输出

subprocess模块不仅可以调用CMD窗口执行命令,还可以控制命令的输入和输出。下面的示例演示了如何通过Python向CMD窗口发送输入,并获取其输出。

import subprocess

# 调用CMD窗口,并执行命令
result = subprocess.run('cmd /k dir', input=b'y\n', capture_output=True, text=True, shell=True)

# 打印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!