當我運行它時,它只顯示完成下載後的百分比,所以有什麼辦法讓它在下載時顯示?列表框更新
listbox = Listbox(Admin)
listbox.grid(row=19, column=9)
def download0(runums, song):
chunks = 10000
dat = ''
runum = runums.replace(' ', '%20')
url = runum
down = urlopen(url)
downso = 0
tota = down.info().getheader('Content-Length').strip()
tota = int(tota)
while 1:
a = down.read(chunks)
downso += len(a)
if not a:
break
dat += a
percent = float(downso)/tota
percent = round(percent*100, 1)
sys.stdout.write(str(percent))
sys.stdout.flush()
sys.stdout.write("\b"*4)
listbox.insert(END, percent)
最簡單的方法通常是將下載到一些線索,或使用基於選擇一些基於事件的下載()(例如扭曲的)來保持事件循環活着。 – schlenk 2011-04-30 10:36:27