如何从python操作cmd.exe,以便在cmd.exe窗口中显示输出



我想使用python打开cmd.exe,然后依次向cmd.exe发送几个命令,并在同一cmd.exe窗口中查看输出。我该怎么做?使用以下代码不会在cmd.exe窗口中显示输出。

proc = subprocess.Popen("cmd", creationflags=subprocess.CREATE_NEW_CONSOLE)
proc.communicate("dirn")

您需要指定stdin=subprocess.PIPE, stdout=subprocess.PIPE。(如果要捕获标准错误输出,请同时指定stderr=subprocess.PIPE)。否则,Popen.communicate无法将输入发送到子流程,也无法获得输出。

import subprocess
proc = subprocess.Popen("cmd", stdin=subprocess.PIPE, stdout=subprocess.PIPE, creationflags=subprocess.CREATE_NEW_CONSOLE)
out, err = proc.communicate("dirn" "cd ..n" "dirn")
# `Popen.communicate` returns a tuple of (standard output, standard error)
print(out)

最新更新