【发布时间】:2013-12-26 15:58:00
【问题描述】:
我想使用 python 打开 cmd.exe,然后依次发送几个命令到 cmd.exe 并在同一个 cmd.exe 窗口中查看输出。我怎样才能做到这一点? 使用以下代码不会在 cmd.exe 窗口中显示输出。
proc = subprocess.Popen("cmd", creationflags=subprocess.CREATE_NEW_CONSOLE)
proc.communicate("dir\n")
【问题讨论】:
-
您希望
stdin来自您的 Python 脚本,但 stdout 会转到新的控制台窗口(python 脚本不在同一个窗口中)。这是正确的吗?为什么需要它(您能否提供更多上下文)? Have you considered to use a GUI instead? 这是一个关于如何 show subprocess output continiusly in a GUI (using tkinter) 的示例,你有完整的命令列表还是交互式的? -
@J.F.Sebastian 我正在从我的 python 程序中调用 curl。 Curl 在工作时会输出一个不错的加载栏,所以我想重用它。 Curl 通常不附带 windows,所以我单独安装了它。我的程序是一种简单的下载管理器。
-
@J.F.Sebastian 我尝试了您的第二个链接,但未能在 gui 窗口中显示 curl 输出。
-
failed to show信息量不是很大。我的猜测是 curl 使用 stderr 打印进度,但示例捕获了命令的标准输出。
标签: python cmd subprocess