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


当前回答

让窗户一直开着的简单方法:

counter = 0

While (True):

    If (counter == 0):

        # Code goes here

    counter += 1

计数器是这样代码就不会重复自己。

其他回答

我也遇到过类似的问题。在notepad++中,我曾经使用命令:C:\Python27\python.exe "$(FULL_CURRENT_PATH)"在代码终止后立即关闭cmd窗口。 现在我使用cmd /k c:\Python27\python.exe "$(FULL_CURRENT_PATH)"它保持cmd窗口打开。

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

python your-program.py

pause

在python 2中,你可以使用:raw_input()

>>print("Hello World!")    
>>raw_input('Waiting a key...')

在python 3中,你可以使用:input()

>>print("Hello world!")    
>>input('Waiting a key...')

你也可以用时间。sleep(time)

>>import time
>>print("The program will close in 5 seconds")
>>time.sleep(5)

在出现异常时保持窗口打开(打印异常时)

Python 2

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except Exception:
        import sys
        print sys.exc_info()[0]
        import traceback
        print traceback.format_exc()
        print "Press Enter to continue ..." 
        raw_input() 

在任何情况下保持窗户开着:

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except Exception:
        import sys
        print sys.exc_info()[0]
        import traceback
        print traceback.format_exc()
    finally:
        print "Press Enter to continue ..." 
        raw_input()

Python 3

对于Python3,你必须使用input()来代替raw_input(),当然还要调整print语句。

if __name__ == '__main__':
    try:
        ## your code, typically one function call
    except BaseException:
        import sys
        print(sys.exc_info()[0])
        import traceback
        print(traceback.format_exc())
        print("Press Enter to continue ...")
        input() 

在任何情况下保持窗户开着:

if __name__ == '__main__':
    try:
        ## your code, typically one function call
except BaseException:
    import sys
    print(sys.exc_info()[0])
    import traceback
    print(traceback.format_exc())
finally:
    print("Press Enter to continue ...")
    input()

你可以使用-i选项启动python,或者设置环境变量PYTHONINSPECT=x。从文档中可以看出:

运行脚本后进行交互检查;强制执行提示符甚至 如果stdin看起来不是终结符;还PYTHONINSPECT = x

所以当你的脚本崩溃或完成时,你会得到一个python提示符,你的窗口不会关闭。