In C++ or any other languages, you can write programs that continuously take input lines from stdin and output the result after each line. Something like:
while (true) {
readline
break if eof
print process(line)
}
I can't seem to get this kind of behavior in Python because it buffers the output (i.e. no printing will happen until the loop exits (?)). Thus, everything is printed when the program finishes. How do I get the same behavior as with C programs (where endl flushes).
Do you have an example which shows the problem?
For example (Python 3):
def process(line):
return len(line)
try:
while True:
line = input()
print(process(line))
except EOFError:
pass
Prints the length of each line after each line.
use sys.stdout.flush() to flush out the print buffer.
import sys
while True:
input = raw_input("Provide input to process")
# process input
print process(input)
sys.stdout.flush()
Docs : http://docs.python.org/library/sys.html
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With