индикатор выполнения в скрипте Python - PullRequest
0 голосов
/ 19 марта 2020

Я должен спросить кое-что, что сделали другие парни, но я не нашел ответа (возможно, глупо).

Мне нужно реализовать индикатор прогресса в моем сценарии python, т. Е. tqdm, и мне очень нравится эта библиотека, потому что она имеет красивые цвета и хорошо структурирована панель вместо простого [---------].

простой скрипт, который я видел, это:

from tqdm import tqdm
for i in tqdm(range(10000)):
    pass

но мой вопрос: куда мне вставлять мой код ?? кажется глупым, но я пробовал несколько раз, и бар не будет go. просто остается на уровне 0% и до тех пор, пока мой скрипт не завершится.

Еще один момент: если я попробую и этот простой код, то каждый раз, когда обновляется сама панель, она создает новую строку с новой строкой. так как я могу иметь один бар, который заполняется, когда проходит время?

большое спасибо, и, конечно, любая поддержка и советы будут оценены

РЕДАКТИРОВАТЬ ---- Если мой код:

alphabetic = ['a','b','c','d','e','f','g','h','i','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0-9']

for lett in alphabetic: lista_pag_success = pr.find_following_page('/artisti/lettera/'+lett) 

artisti=[] 
linksss=[] 

for i in lista_pag_success: 
       artisti, linksss = pr.crawl_canzoni_it(i) 

Я должен поместить весь этот код в функцию tqdm ()? Я должен пройти только итеративный? но что, если у меня есть такой случай? lista_pag_success и artisti, linksss - это три списка - это код для простого сканера -

1 Ответ

1 голос
/ 20 марта 2020

Ваша итерация, по которой вы хотите отслеживать прогресс, должна заменить range(10000) в приведенном вами примере кода.

Например, если у вас есть список чисел, [1, 4, 9, 10], и вы хотите найдя квадрат каждого числа, вы должны выполнить итерацию по tqdm([1, 4, 9, 10]) и выполнить вычисления внутри for l oop, то есть:

squared_nums = []
for num in tqdm([1, 4, 9, 10]):
    squared_nums.append(num * num)
print(squared_nums)

. Это приведет к выводу типа: *

Конечно, в этом простом случае его также можно написать с использованием понимания списка:

squared_nums = [num * num for num in tqdm([1, 4, 9, 10])]
...