Индикатор выполнения Python для функций Python - PullRequest
1 голос
/ 17 июня 2019

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

Вот мой код:

class RfmTable:

def __init__(self,table_name,start_date,end_date):
    self.table_name = table_name
    self.start_date = start_date
    self.end_date = end_date
    self.quintiles = {}

def rfm_chart(self):        
    conn = psycopg2.connect(database=database_name, user=user_name,                           
                        password=password_info, host=host_info, port=port_info)
    cursor = conn.cursor()
    cursor.execute(...) #table information
    a = cursor.fetchall()

    # rfm analysis 
    # draw the chart
    for i, bar in enumerate(bars):
            value = bar.get_width()
            if segments_counts.index[i] in ['重要价值用户']:
                bar.set_color('firebrick')
            ax.text(value,
                    bar.get_y() + bar.get_height()/2,
                    '{:,} ({:}%)'.format(int(value),
                                       int(value*100/segments_counts.sum())),
                    va='center',
                    ha='left'
                   )
    return plt.show()

Так, что является хорошим способом добавить индикатор выполнения к функции?

1 Ответ

0 голосов
/ 29 июня 2019

tqdm индикатор выполнения является, вероятно, наиболее показательным индикатором выполнения для Python. Вы можете установить его просто с помощью pip install tqdm.

Следующий код демонстрирует простоту использования.

from tqdm import tqdm
import time

for i in tqdm(range(100)):
    time.sleep(0.1)

Вот как это выглядит после запуска приведенного выше примера кода в pycharm:

enter image description here

1: процент выполнения
2: индикатор выполнения
3: текущая итерация из общего числа итераций
4: Истекшее время
5: Расчетное оставшееся время
6. Число итераций, обрабатываемых в секунду

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...