SImple python print question
Hans Nowak
zephyrfalcon!NO_SPAM! at gmail.com
Fri May 16 19:02:33 EDT 2008
amit.uttam at gmail.com wrote:
> Hey there,
>
> I have a simple question about python print statement. Take the
> following code snippet for example...
>
> 1 print "-#- executing: %s" % section,
> 2 tests[section] = test.testcase(name=config.get(section,'name'))
> 3 tests[section].runTest()
> 4 printStatus(tests[section])
>
> Now the problem is that line 1 does not get printed until line 4. What
> I thought would happen is that line 1 gets executed and the user sees
> that the statement that the test case is executing. Then after the
> test case executes a "PASS" or "FAIL" appears on the same line as the
> "-#- executing: 0053" statement.
>
> e.g.
> -#- executing: 0053 FAIL
>
> Some tests take a long time to finish thus the screen is blank until
> the entire test finishes and the above statement is outputted.
>
> Thanks for any help.
'print' sends its output to sys.stdout, which is buffered, and may not be
displayed immediately (because it's held in the buffer). To force the output to
be displayed, use flush():
print "-#- executing: %s" % section,
sys.stdout.flush()
...tests here...
Hope this helps!
--Hans
More information about the Python-list
mailing list