Мне не особо повезло, если эффективно поместить индикатор выполнения в консоль python, но если это поможет, https://geektechstuff.com/2018/12/07/creating-a-progress-bar-python/ содержит некоторую информацию о индикаторах хода выполнения окна tkinter.Пример:
from tkinter import *
from tkinter import ttk
main = Tk()
def foo(progressbar):
progressbar.start()
for _ in range(50):
progressbar.step(10)
###Perform some Function
progressbar.update_idletasks()
progressbar.stop()
progressbar = ttk.Progressbar(main, mode='indeterminate', length=696)
progressbar.grid(column=0, row=4, columnspan=100, rowspan=100, sticky=W, pady=4, padx=3)
foo(progressbar)
main.mainloop()
Код выше работает для меня (Python 3x Windows 10).
В качестве альтернативы вы можете установить progressbar
на PyPI, чтобы показать панель загрузки в консоли python.Пример:
import progressbar
from time import sleep
bar = progressbar.ProgressBar(maxval=20, \
widgets=[progressbar.Bar('=', '[', ']'), ' ', progressbar.Percentage()])
bar.start()
for i in xrange(20):
bar.update(i+1)
sleep(0.1)
bar.finish()
Также: символ '\ r' (возврат каретки) должен сбрасывать курсор в начало строки.Я не уверен на 100%, работает ли это на всех системах, но я знаю, что это работает на Linux и OSX:
from time import sleep
import sys
for i in range(21):
sys.stdout.write('\r')
# the exact output you're looking for:
sys.stdout.write("[%-20s] %d%%" % ('='*i, 5*i))
sys.stdout.flush()
sleep(0.25)
Надеюсь, это поможет!