Nano Hash - криптовалюты, майнинг, программирование

есть ли простой способ добавить индикатор выполнения/счетчик, где я могу добавить строку, чтобы время от времени увеличивать ее - Not Timed

У меня есть сценарий, который в основном завершен. Я хотел бы добавить к нему какой-то индикатор выполнения, вместо того, чтобы распечатывать каждый шаг по мере его прохождения.

есть что-нибудь, что позволит мне сделать это.

настроить виджет прогресса/счетчик/цикл, дать ему командную функцию для увеличения

сделайте какой-нибудь скрипт добавьте код для продвижения/увеличения индикатора выполнения сделайте еще скрипт добавьте код для продвижения/увеличения индикатора выполнения сделайте еще скрипт добавьте код для продвижения/увеличения индикатора выполнения сделайте еще скрипт добавьте код для продвижения /увеличить индикатор выполнения

Кроме того, не могли бы вы привести мне какой-нибудь пример? Я просмотрел 3 или 4 разных библиотеки типа «индикатор выполнения», и ни один из них не привел пример того, как сделать это таким образом, все примеры, которые я нашел, хотят это сделать по времени или по размеру байта для скачивания файлов

09.06.2019

Ответы:


1

В PIP есть несколько индикаторов выполнения, я рекомендую ezprogress, если вы используете python3.

from ezprogress.progressbar import ProgressBar
import time

# Number of steps in your total script
steps_needed = 100
current_step = 0

# setup progress bar
pb = ProgressBar(steps_needed, bar_length=100)
pb.start()


# Do what your script wants
...

# Increment counter
current_step += 1
pb.update(current_step)

# Do what your script wants
...


# When you are done you can force the progress bar to finish
PB.finished()

Индикатор выполнения не поддерживает отключение оценки времени, однако теперь это возможно в новейшей версии, просто обновите PIP.

Чтобы отключить оценку времени, нужно просто запустить индикатор выполнения с параметром no_time=True, как в приведенном ниже коде:

pb = ProgressBar(steps_needed, bar_length=100, no_time=True)
09.06.2019
  • Это достаточно просто... Спасибо 09.06.2019
  • как мне избавиться от расчетного времени до завершения? Мне не нужно это показывать, так как это очень неточно с тем, что я делаю. 09.06.2019
  • Теперь я ответил на это как на редактирование моего первоначального ответа. Если это решило вашу проблему, было бы здорово, если бы вы отметили ответ как принятый. 09.06.2019
  • sudo pip3 install git+github.com/Joklost/ezprogress.git у меня не работает, что я отсутствует, чтобы заставить это работать из окна командной строки, просто говорит мне, что sudo не найдено 09.06.2019
  • Извините, я не знаю, как установить пакеты pip в Windows. В понедельник пакет pip будет обновлен в официальном репозитории, и вы сможете обновить его так же, как вы установили его изначально. 09.06.2019
  • @soundtechscott обновленный индикатор выполнения теперь находится в pip, поэтому просто установите обновление, и параметр no_time будет работать. 10.06.2019

  • 2

    создайте свой модуль progressbar.py

    import sys
    import copy
    currentProgressCnt = 0
    progressCntMax     = 0  # 
    progressBarWidth   = 50 # in chars
    scaleFctr          = 0.0
    tasksToDo          = []
    class ProgressIndicator:
        def showProgress(self):
            global progressCntMax
            global currentProgressCnt
            cr                 = "\r"
            progressChar       = '#'
            fillChar           = '.'
            progressBarDone = currentProgressCnt*progressChar*scaleFctr
            progressBarRemain = fillChar*(progressCntMax - currentProgressCnt)*scaleFctr
            percent = str(int((float(currentProgressCnt)/float(progressCntMax))*100)) + " % completed "
            taskId = '(' + tasksToDo[currentProgressCnt - 1] + ') '
            quote = str(currentProgressCnt) + '/' + str(progressCntMax) + ' '
            sys.stdout.write(cr + progressBarDone + progressBarRemain + ' ' + percent + taskId + quote)
            sys.stdout.flush()
            if currentProgressCnt == progressCntMax:
                print
        def incProgress(self):
            global currentProgressCnt
            currentProgressCnt += 1
    
        def setLastStep(self, size):
            global progressCntMax, scaleFctr
            progressCntMax = size
            scaleFctr = progressBarWidth / progressCntMax
        def setTaskList(self, taskList):
            global tasksToDo
            tasksToDo = copy.copy(taskList)
            self.setLastStep(len(tasksToDo))
    

    в основном используйте класс ProgressIndicator следующим образом:

    from progressbar import ProgressIndicator
    import time 
    import datetime
    #########################################
    ###              MAIN                 ###
    ###           SIMULATION              ###       
    #########################################
    
    # your procedure list you have to run
    toDoList = ['proc1', 'proc2', 'proc3', 'proc1', 'proc4', 'proc5', 
                'proc6', 'proc7', 'proc21', 'proc32', 'proc43', 'proc51',
                'proc4', 'proc65', 'proc76', 'proc87']
    progressLine = ProgressIndicator() # create your indicator
    progressLine.setTaskList(toDoList) # set params
    
    # your main work
    i = 0; lastTask = len(toDoList)
    # log the start
    startTime = str(datetime.datetime.now())
    print ( startTime + " main started")
    while i <  lastTask:
        # run your task list here
        time.sleep(1) # simulating your toDoList[i]() run
        i += 1
        progressLine.incProgress()   # use when task done, incrase progress 
        progressLine.showProgress()  # use for update display
    # work is done, log the end
    endTime = str(datetime.datetime.now())
    print ( endTime + " main finished")
    
    09.06.2019
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..