我刚刚开始学习Python。当我在Windows上执行一个python脚本文件时,输出窗口出现但立即消失。我需要它停留在那里,这样我就可以分析我的输出。我怎么才能让它一直开着?


当前回答

创建一个像dontClose()这样的函数或带有while循环的函数:

import time

def dontClose():
    n = 1
    while n > 0:
        n += 1
        time.sleep(n)
        

然后在代码之后运行函数。例如:

print("Hello, World!")
dontClose()

其他回答

你有几个选择:

Run the program from an already-open terminal. Open a command prompt and type: python myscript.py For that to work you need the python executable in your path. Just check on how to edit environment variables on Windows, and add C:\PYTHON26 (or whatever directory you installed python to). When the program ends, it'll drop you back to the cmd prompt instead of closing the window. Add code to wait at the end of your script. For Python2, adding ... raw_input() ... at the end of the script makes it wait for the Enter key. That method is annoying because you have to modify the script, and have to remember removing it when you're done. Specially annoying when testing other people's scripts. For Python3, use input(). Use an editor that pauses for you. Some editors prepared for python will automatically pause for you after execution. Other editors allow you to configure the command line it uses to run your program. I find it particularly useful to configure it as "python -i myscript.py" when running. That drops you to a python shell after the end of the program, with the program environment loaded, so you may further play with the variables and call functions and methods.

你可以组合答案之前:(notepad++用户)

按F5运行当前脚本并输入命令:

cmd /k python -i "$(FULL_CURRENT_PATH)"

这样,在执行notepad++ python脚本后,您将保持在交互模式,并且您能够使用您的变量等等:)

我发现在win10的py3环境上的解决方案只是以管理员身份运行cmd或powershell,输出将保持在相同的控制台窗口,任何其他类型的用户运行python命令将导致python打开一个新的控制台窗口。

使用atexit,你可以在程序退出时暂停它。如果一个错误/异常是退出的原因,它将在打印堆栈跟踪后暂停。

import atexit

# Python 2 should use `raw_input` instead of `input`
atexit.register(input, 'Press Enter to continue...')

在我的程序中,我调用了atexit。在except子句中注册,这样它只会在出现错误时暂停。

if __name__ == "__main__":
    try:
        something_that_may_fail()

    except:
        # Register the pause.
        import atexit
        atexit.register(input, 'Press Enter to continue...')

        raise # Reraise the exception.

用下面两行代码创建一个Windows批处理文件:

python your-program.py

pause