【发布时间】:2015-01-03 21:36:56
【问题描述】:
来自this的问题,我解决了这个问题,但现在又出现了另一个问题。现在我的第一个.exe文件正在Pygame中通过这些代码打开;
process = subprocess.Popen(["wtf.exe"])
output, errors = process.communicate()
此文件 (wtf.exe) 在打开 Pygame 并将该信息放入 Pygame 之前向用户询问信息;
当我确认这些信息时,它会用我在第一个程序中提供的信息打开 Pygame 屏幕并关闭第一个程序;
到目前为止一切都很好,当我点击“播放”时,它正在终端中打开另一个文件;但最后一个文件的数据还在。
你看,这里第一张图片的数据,应该是没有这些数据的。为什么终端没有自行清理?这是在终端中运行的另一个 .exe 文件,是“新”终端上的一个新文件,但它看起来并不新。处理完第一个文件后如何清理终端?如您所知,这些是在终端上工作的 .exe 文件,我无法手动清除终端,我必须在该文件中编写一些代码,但我不知道该怎么做。
编辑:我故意提供了一些不可接受的信息,请检查此图片:
Edit2:Here 是我的问题的视频。
【问题讨论】:
-
你希望它从顶部开始还是你的提示可以在底部?
-
我当然想从最上面开始,而且这个问题真的很奇怪。它应该是另一个终端,因为我打开了一个不同的 .exe 文件,但正如您看到的第一个数据仍然存在。如果第二个程序正在运行,我从用户那里获取的数据不能在终端中。
-
哦,我明白你为什么不只使用一个终端窗口,并在输入信息后将其清除,只需使用空打印语句执行 for 循环 2000 通常会清除终端窗口
-
@Ondeckshooting 好吧,这实际上不是一个解决方案,就像隐藏第一个数据:-) 但我想清除它,它更像是“程序员”,也不应该发生这个问题,正如我所说第二个程序是另一个 .exe 文件..
-
您的脚本通过控制台程序 py.exe 运行,该程序启动 python.exe。当您运行
subprocess.Popen('wtf.exe')时,子进程将继承当前控制台。您可以先运行subprocess.Popen('cls', shell=True)让shell 清除屏幕。或者您可以指示 Windows 创建一个新控制台:subprocess.Popen('wtf.exe', creationflags=subprocess.CREATE_NEW_CONSOLE)。
标签: python windows cmd pygame subprocess