1

在我的项目中,我.bat从 python 脚本开始一个文件。像这样:

os.system("testfile.bat")

完成`testfile.bat后,它以提示结束Press any key to continue ...。我希望我的 python 脚本能够超越这个提示并以某种方式模拟按键。

我怎样才能做到这一点?我已经通过使用子流程实现了此功能,但事实证明,子流程不适合我的项目上下文(与打印到控制台有关)。有任何想法吗?

4

3 回答 3

2

使用该subprocess模块总是适合并优于os.system.

做就是了

sp = subprocess.Popen("testfile.bat", stdin=subprocess.PIPE)
sp.stdin.write("\r\n") # send the CR/LF for pause
sp.stdin.close() # close so that it will proceed

你应该完成了。

于 2013-09-12T13:24:07.173 回答
0

添加>nul到暂停命令的末尾(在批处理文件中。)它不会打印“按任意键继续。

于 2013-09-13T02:39:31.897 回答
0

如果您在 Bat 文件末尾有“暂停”,只需将其删除,它将在子进程完成后继续执行其余的 python 脚本。

p = subprocess.Popen("testfile.bat", shell=False, \
                          cwd=path_to_exe)

p.wait()
于 2018-03-09T16:59:46.610 回答