How do you make Python wait so that you can read the output?

I've always been a heavy user of Notepad2, as it is fast, feature-rich, and supports syntax highlighting. Recently I've been using it for Python.

My problem: when I finish editing a certain Python source code, and try to launch it, the screen disappears before I can see the output pop up. Is there any way for me to make the results wait so that I can read it, short of using an input() or time-delay function? Otherwise I'd have to use IDLE, because of the output that stops for you to read.

(My apologies if this question is a silly one, but I'm very new at Python and programming in general.)

Answers


If you don't want to use raw_input() or input() you could log your output (stdout, stderr) to a file or files.

You could either use the logging module, or just redirect sys.stdout and sys.stderr.

I would suggest using a combination of the logging and traceback if you want to log errors with their trace stack.

Something like this maybe:

import logging, traceback
logging.basicConfig(filename=r'C:\Temp\log.txt', level=logging.DEBUG)

try:
    #do some stuff
    logging.debug('I did some stuff!')
except SomeException:
    logging.error(traceback.format_exc())

Here's an example of redirecting stdout and stderr:

if __name__ == '__main__':
    save_out = sys.stdout  # save the original stdout so you can put it back later
    out_file = open(r'C:\Temp\out.txt', 'w')
    sys.stdout = out_file

    save_err = sys.stderr
    err_file = open(r'C:\Temp\err.txt', 'w')
    sys.stderr = err_file

    main()  #call your main function

    sys.stdout = save_out  # set stdout back to it's original object
    sys.stderr = save_err

    out_file.close()
    err_file.close()

I'm going to point out that this is not the easiest or most straight forward way to go.


This is a "problem" with Notepad2, not Python itself.

Unless you want to use input()/sleep (or any other blocking function) in your scripts, I think you have to turn to the settings in Notepad2 and see what that has to offer.


you could start in the command window. e.g.:

c:\tmp\python>main.py

adding raw_input() (or input() in py3k) at the end of your script will let you freeze it for until enter is pressed, but it's not a good thing to do.


You can add a call to raw_input() to the end of your script in order to make it wait until you press Enter.


Need Your Help

how to hide header and footer on scroll in android

android scroll header hide footer

there is two LinearLayouts header and footer in main activity

Where do I find API key and API secret for Facebook?

android facebook api keyboard api-key

Trying to connect to Facebook to make a statusupdate through my Android application.