Can anyone throw some light on this please ! ?<br><br><br>
<br><br><div class="gmail_quote">On Thu, Nov 24, 2011 at 9:05 PM, <span dir="ltr"><<a href="mailto:Nikunj.Badjatya@emc.com">Nikunj.Badjatya@emc.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div lang="EN-US" link="blue" vlink="purple"><div><p class="MsoNormal">Hi All,<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Please look at the code below.<u></u><u></u></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.<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">{{{<u></u><u></u></p>
<p class="MsoNormal">import sys<u></u><u></u></p><p class="MsoNormal">import time<u></u><u></u></p><p class="MsoNormal">import threading<u></u><u></u></p><p class="MsoNormal">import os<u></u><u></u></p><p class="MsoNormal">
<u></u> <u></u></p><p class="MsoNormal">from progressbar import AnimatedMarker, Bar, BouncingBar, Counter, ETA, \<u></u><u></u></p><p class="MsoNormal"> FileTransferSpeed, FormatLabel, Percentage, \<u></u><u></u></p>
<p class="MsoNormal"> ProgressBar, ReverseBar, RotatingMarker, \<u></u><u></u></p><p class="MsoNormal"> SimpleProgress, Timer<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">def ProgBar():<u></u><u></u></p><p class="MsoNormal"> widgets = [' ', Percentage(), ' ', Bar(marker='#',left='[',right=']'),' ']<u></u><u></u></p><p class="MsoNormal">
pbar = ProgressBar(widgets=widgets, maxval=100)<u></u><u></u></p><p class="MsoNormal"> pbar.start()<u></u><u></u></p><p class="MsoNormal"> return pbar<u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">def update2(i):<u></u><u></u></p><p class="MsoNormal"> os.environ["PBAR"] = i<u></u><u></u></p><p class="MsoNormal"> print(“This will print for every call to update”)<u></u><u></u></p>
<p class="MsoNormal"> return <u></u><u></u></p><p class="MsoNormal"> <u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">class MyThread(threading.Thread):<u></u><u></u></p>
<p class="MsoNormal"> def run(self):<u></u><u></u></p><p class="MsoNormal"> l = 0<u></u><u></u></p><p class="MsoNormal"> while True:<u></u><u></u></p><p class="MsoNormal"> n = os.getenv("PBAR", "")<u></u><u></u></p>
<p class="MsoNormal"> if len(n) != 0:<u></u><u></u></p><p class="MsoNormal"> n = int(n)<u></u><u></u></p><p class="MsoNormal"> if n > l:<u></u><u></u></p><p class="MsoNormal"> pbar.update(n)<u></u><u></u></p>
<p class="MsoNormal"> l = n<u></u><u></u></p><p class="MsoNormal"> if n == 100:<u></u><u></u></p><p class="MsoNormal"> break <u></u><u></u></p><p class="MsoNormal">
else:<u></u><u></u></p><p class="MsoNormal"> continue <u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">pbar = ProgBar()<u></u><u></u></p><p class="MsoNormal">
mythread = MyThread()<u></u><u></u></p><p class="MsoNormal">mythread.daemon = True <u></u><u></u></p><p class="MsoNormal">mythread.start() <u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">for i in range(101):<u></u><u></u></p><p class="MsoNormal"> update2("{0}".format(i))<u></u><u></u></p><p class="MsoNormal"> time.sleep(0.25)<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"> }}} <u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">{{{<u></u><u></u></p><p class="MsoNormal">Output:<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">
<img width="712" height="334" src="cid:image002.jpg@01CCAAEC.CFE44870" alt="output.jpeg"><u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">}}}<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">But I require the output to be of type:<u></u><u></u></p><p class="MsoNormal">{{{<u></u><u></u></p><p class="MsoNormal">13% [########### ]<u></u><u></u></p>
<p class="MsoNormal">This will print for every call to update<u></u><u></u></p><p class="MsoNormal">This will print for every call to update<u></u><u></u></p><p class="MsoNormal">This will print for every call to update<u></u><u></u></p>
<p class="MsoNormal">This will print for every call to update<u></u><u></u></p><p class="MsoNormal">This will print for every call to update<u></u><u></u></p><p class="MsoNormal">}}}<u></u><u></u></p><p class="MsoNormal">
<u></u> <u></u></p><p class="MsoNormal">This is just a sample piece of code for narrowing down the problem. <u></u><u></u></p><p class="MsoNormal">How can I fix the cursor position fix for the thread which is updating my progressbar .?<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Thanks<u></u><u></u></p><p class="MsoNormal">Nikunj<u></u><u></u></p><p class="MsoNormal">Bangalore-India<u></u><u></u></p><p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p></div></div><br>--<br>
<a href="http://mail.python.org/mailman/listinfo/python-list" target="_blank">http://mail.python.org/mailman/listinfo/python-list</a><br>
<br></blockquote></div><br>