<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:Tahoma;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-priority:99;
mso-style-link:"Balloon Text Char";
margin:0in;
margin-bottom:.0001pt;
font-size:8.0pt;
font-family:"Tahoma","sans-serif";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
span.BalloonTextChar
{mso-style-name:"Balloon Text Char";
mso-style-priority:99;
mso-style-link:"Balloon Text";
font-family:"Tahoma","sans-serif";}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="2050" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi All,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Please look at the code below.<o:p></o:p></p><p class=MsoNormal>I am using pypi progressbar. But in general, How can I keep the area of the console fixed for the thread to print its status on it.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>{{{<o:p></o:p></p><p class=MsoNormal>import sys<o:p></o:p></p><p class=MsoNormal>import time<o:p></o:p></p><p class=MsoNormal>import threading<o:p></o:p></p><p class=MsoNormal>import os<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>from progressbar import AnimatedMarker, Bar, BouncingBar, Counter, ETA, \<o:p></o:p></p><p class=MsoNormal> FileTransferSpeed, FormatLabel, Percentage, \<o:p></o:p></p><p class=MsoNormal> ProgressBar, ReverseBar, RotatingMarker, \<o:p></o:p></p><p class=MsoNormal> SimpleProgress, Timer<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>def ProgBar():<o:p></o:p></p><p class=MsoNormal> widgets = [' ', Percentage(), ' ', Bar(marker='#',left='[',right=']'),' ']<o:p></o:p></p><p class=MsoNormal> pbar = ProgressBar(widgets=widgets, maxval=100)<o:p></o:p></p><p class=MsoNormal> pbar.start()<o:p></o:p></p><p class=MsoNormal> return pbar<o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>def update2(i):<o:p></o:p></p><p class=MsoNormal> os.environ["PBAR"] = i<o:p></o:p></p><p class=MsoNormal> print(“This will print for every call to update”)<o:p></o:p></p><p class=MsoNormal> return <o:p></o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>class MyThread(threading.Thread):<o:p></o:p></p><p class=MsoNormal> def run(self):<o:p></o:p></p><p class=MsoNormal> l = 0<o:p></o:p></p><p class=MsoNormal> while True:<o:p></o:p></p><p class=MsoNormal> n = os.getenv("PBAR", "")<o:p></o:p></p><p class=MsoNormal> if len(n) != 0:<o:p></o:p></p><p class=MsoNormal> n = int(n)<o:p></o:p></p><p class=MsoNormal> if n > l:<o:p></o:p></p><p class=MsoNormal> pbar.update(n)<o:p></o:p></p><p class=MsoNormal> l = n<o:p></o:p></p><p class=MsoNormal> if n == 100:<o:p></o:p></p><p class=MsoNormal> break <o:p></o:p></p><p class=MsoNormal> else:<o:p></o:p></p><p class=MsoNormal> continue <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>pbar = ProgBar()<o:p></o:p></p><p class=MsoNormal>mythread = MyThread()<o:p></o:p></p><p class=MsoNormal>mythread.daemon = True <o:p></o:p></p><p class=MsoNormal>mythread.start() <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> <o:p></o:p></p><p class=MsoNormal>for i in range(101):<o:p></o:p></p><p class=MsoNormal> update2("{0}".format(i))<o:p></o:p></p><p class=MsoNormal> time.sleep(0.25)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal> }}} <o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>{{{<o:p></o:p></p><p class=MsoNormal>Output:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><img width=712 height=334 id="Picture_x0020_0" src="cid:image002.jpg@01CCAAEC.CFE44870" alt=output.jpeg><o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>}}}<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>But I require the output to be of type:<o:p></o:p></p><p class=MsoNormal>{{{<o:p></o:p></p><p class=MsoNormal>13% [########### ]<o:p></o:p></p><p class=MsoNormal>This will print for every call to update<o:p></o:p></p><p class=MsoNormal>This will print for every call to update<o:p></o:p></p><p class=MsoNormal>This will print for every call to update<o:p></o:p></p><p class=MsoNormal>This will print for every call to update<o:p></o:p></p><p class=MsoNormal>This will print for every call to update<o:p></o:p></p><p class=MsoNormal>}}}<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>This is just a sample piece of code for narrowing down the problem. <o:p></o:p></p><p class=MsoNormal>How can I fix the cursor position fix for the thread which is updating my progressbar .?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks<o:p></o:p></p><p class=MsoNormal>Nikunj<o:p></o:p></p><p class=MsoNormal>Bangalore-India<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>