运行python.exe并在脚本执行后暂停

时间:2013-07-01 10:07:12

标签: python cmd execution

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

到目前为止我找到的解决方案是:

  1. 使用cmd行运行我的脚本:cmd /K python myscript.py但是它使cmd窗口保持打开状态,我现在需要编写 exit 来返回我的文本编辑器。
  2. 手动将input("Press any key to continue ...")添加到我的python脚本中,但我经常需要在一小时内打开25个不同的脚本,为每个脚本编写它会感觉很愚蠢,然后一旦我删除它就会删除它完成。
  3. 是否有更好的解决方案,例如在脚本执行后自动调用input()

1 个答案:

答案 0 :(得分:2)

您可以在Python脚本中添加选项--pause,并且仅在设置了该选项时才提示按键:

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}