python: print using carriage return and comma not working

Question:

I need to print over one line in a loop (Python 3.x). Looking around on SO already, I put this line in my code:

print('{0} importedr'.format(tot),)

However, it still prints multiple lines when looped through. I have also tried

sys.stdout.write('{0} importedr'.format(tot))

but this doesn’t print anything to the console…

Anyone know what’s going on with this?

Asked By: kevlar1818

||

Answers:

In the first case, some systems will treat r as a newline. In the second case, you didn’t flush the line. Try this:

sys.stdout.write('{0} importedr'.format(tot))
sys.stdout.flush()

Flushing the line isn’t necessary on all systems either, as Levon reminds me — but it’s generally a good idea when using r this way.

Answered By: senderle

If you want to overwrite your last line you need to add r (character return) and end=”” so that you do not go to the next line.

values = range(0, 100)
for i in values:
    print ("rComplete: ", i, "%", end="")
print ("rComplete: 100%")
Answered By: Joris

I prefer to use the solution of Jan but in this way:

values = range(0, 101)
for i in values:
  print ("Complete: ", i, "%", end="r")
print ()
Answered By: Southernal
Categories: questions Tags: , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.