python overwrite previous line
Question: how do you overwrite the previous print in python 2.7? I am making a simple
program to calculate pi. here is the code:

    
    
    o = 0
    hpi = 1.0
    i = 1
    print "pi calculator"
    acc= int(raw_input("enter accuracy:"))
    if(acc>999999):
            print "WARNING: this might take a VERY long time. to terminate, press CTRL+Z"
    print "precision: " + str(acc)
    while i < acc:
            if(o==0):
                    hpi *= (1.0+i)/i
                    o = 1
            elif(o==1):
                    hpi *= i/(1.0+i)
                    o = 0
            else:
                    print "loop error."
            i += 1
            if i % 100000 == 0:
                    print str(hpi*2))
    print str(hpi*2))
    

It basicly outputs the current pi after 100000 calculations. how can I make it
overwrite the previous calculation?


Answer: Prefix your output with carriage return symbol `'\r'` and do not end it with
line feed symbol `'\n'`. This will place cursor at the beginning of the
current line, so output will overwrite previous its content. Pad it with some
trailing blank space to guarantee overwrite. E.g.

    
    
    sys.stdout.write('\r' + str(hpi) + ' ' * 20)
    sys.stdout.flush() # important
    

Output the final value as usual with `print`.

I believe this should work both in most *nix terminal emulators and Windows
console. YMMV, but this is the simplest way.

