Arhn - архитектура программирования

Путаница с индикатором выполнения Python, как добавить индикатор выполнения в уже существующий цикл

Посмотрев на следующий вопрос относительно индикаторов выполнения Python, я все еще не понимаю: Индикатор выполнения Python

Я новичок в Python и пытаюсь добавить индикатор выполнения в созданный мной скрипт, который запускает цикл for. Для обработки цикла требуется значительное количество времени, поэтому я хочу, чтобы индикатор выполнения показывал, когда цикл выполняется. Меня смущает то, что я настроил цикл внутри цикла, чтобы реализовать индикатор выполнения? Вот образец моего цикла for из моего кода:

for member in members:
    url = "http://api.wiki123.com/v1.11/member?id="+str(member) 

    header = {"Authorization": authorization_code}

    api_response = requests.get(url, headers=header)

    member_check = json.loads(api_response.text)

    member_status = member_check.get("response") 

Нужно ли мне включать код, чтобы добавить индикатор выполнения В этот цикл, или он должен быть включен вне цикла? Спасибо.

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


Ответы:


1

Простым решением было бы print '-' в конце цикла. Это печатает один дефис для каждой итерации цикла for.

Если вместо этого вы хотите всегда печатать 100 дефисов, по 1 дефису на каждый «процент», вы можете сделать что-то вроде print '-'*(100/len(members)), с дополнительной проверкой добавления дополнительных дефисов к последней итерации для четных 100.

05.04.2017
  • Спасибо за ответ, но я не думаю, что это та информация, которую я искал. В частности, мне было интересно использовать какой-то тип библиотеки индикаторов выполнения (например, индикатор выполнения), но я не понимаю, где нужно вставить код относительно моего цикла FOR, который я включил в качестве примера выше. Спасибо. 06.04.2017

  • 2

    На самом деле это очень просто с библиотекой enlighten. Просто создайте индикатор выполнения перед циклом и обновляйте его с каждым экземпляром цикла. Используя менеджер, вы можете иметь дополнительные индикаторы выполнения для других частей вашей программы.

    import enlighten
    
    manager = enlighten.get_manager()
    pbar = manager.counter(total=len(members), desc="Checking status", unit='members')
    
    for member in members:
        url = "http://api.wiki123.com/v1.11/member?id="+str(member)
        header = {"Authorization": authorization_code}
        api_response = requests.get(url, headers=header)
        member_check = json.loads(api_response.text)
        member_status = member_check.get("response")
        pbar.update()
    
    17.08.2018

    3

    Это легко сделать с помощью atpbar, пока members в вашем код имеет длину.

    Вам нужно только members обернуть atpbar:

    from atpbar import atpbar
    
    ⋮
    
    for member in atpbar(members):
        ⋮
    
    24.03.2019

    4

    Вы можете использовать библиотеку tqdm.

    Вам нужно только изменить свой цикл, чтобы включить счетчик, см. Этот пример:

    from tqdm import tqdm
    import time
    startTime = time.clock()
    totalCount = len(members)
    for index, member in enumerate(members):
        stopTime = time.clock()
        statusBarText = tqdm.format_meter(index + 1,
                                          totalCount,
                                          stopTime - startTime,
                                          ncols=80,  # prints text 80 characters wide
                                          ascii=False)
        print(statusBarText, '\b' * 81, end='')
        startTime = time.clock()
        ... rest of the code in your loop ...
    
    12.06.2021
    Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..