2013-07-01 319 views
2

我知道这已被问过几次,但我还没有找到一个好的解决方案。 我希望运行我的Python脚本使用python.exe可能的命令行参数或类似的,使python脚本执行后暂停。 理想的解决方案将如python myscript.py -pause,现在它会说“按任意键继续...”执行后。 据我所知这是不可能的,但我正在寻找一个类似的解决方案。运行python.exe并在脚本执行后暂停

到目前为止,我已经找到了解决方案:

  1. 运行我的脚本CMD行:cmd /K python myscript.py但它留下的cmd窗口打开愣神,我现在需要写退出要回我的文本编辑器。
  2. 手动将input("Press any key to continue ...")添加到我的python脚本中,但是我经常需要在一个小时内打开25个不同的脚本,并且感觉每个脚本都会写一个愚蠢的,然后在完成后删除它。

有没有更好的解决方案,比如脚本执行后自动调用input()

回答

2

你可以添加一个选项--pause你的Python脚本,并提示按键只有当该选项设置:

import getopt 
import msvcrt 

opts, args = getopt.getopt(sys.argv[1:], '...', ['pause', ...]) 
for opt, arg in opts: 
    if opt == "--pause": 
     promptForKeypress = True 
    ... 
... 
if promptForKeypress: 
    msvcrt.getch()  # note: Windows-only 
# End of Script 

这将需要修改所有的脚本,虽然。另一种选择可能是使用这样的批处理脚本来运行你的Python脚本:

@echo off 

if not "%1"=="" (
    python %* 
    pause 
) 

使用方法如下:

pyrunner.cmd script.py {options} 
+0

批处理脚本做的工作,谢谢! :) –