在我的项目中,我.bat
从 python 脚本开始一个文件。像这样:
os.system("testfile.bat")
完成`testfile.bat
后,它以提示结束Press any key to continue ...
。我希望我的 python 脚本能够超越这个提示并以某种方式模拟按键。
我怎样才能做到这一点?我已经通过使用子流程实现了此功能,但事实证明,子流程不适合我的项目上下文(与打印到控制台有关)。有任何想法吗?
在我的项目中,我.bat
从 python 脚本开始一个文件。像这样:
os.system("testfile.bat")
完成`testfile.bat
后,它以提示结束Press any key to continue ...
。我希望我的 python 脚本能够超越这个提示并以某种方式模拟按键。
我怎样才能做到这一点?我已经通过使用子流程实现了此功能,但事实证明,子流程不适合我的项目上下文(与打印到控制台有关)。有任何想法吗?
使用该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
你应该完成了。
添加>nul
到暂停命令的末尾(在批处理文件中。)它不会打印“按任意键继续。
如果您在 Bat 文件末尾有“暂停”,只需将其删除,它将在子进程完成后继续执行其余的 python 脚本。
p = subprocess.Popen("testfile.bat", shell=False, \
cwd=path_to_exe)
p.wait()