@Darkzenon

Как получить порядковый номер процесса?

Добрый день.
Вопрос по multiprocessing и tqdm в python на windows.

Код работает, но есть 2 проблемы.
1 - tqdm нужно задавать номер позиции иначе вместо фиксированных прогрессбаров получается полоса прокрутки, просто добавляются новые строки.
2 - по мультипроцесингу. как получить порядковый номер процесса, чтобы его можно было вставить в номер позиции tqdm

идея с генератором
def gen():
	a=[1,2,3,4,5,6,7,8,9,10]
	yield a


не работает, возвращается весь генератор.
Единственная идея, которая не очень нравится, это в список передаваемы в map. Первой позицией передавать значение итератора а потом этот список уже разбирать в функции.

spoiler
from multiprocessing import Pool
from multiprocessing.pool import ThreadPool

def GetData(part_hrefs):
    df = []
    for item in tqdm(part_hrefs, position=2, desc="h", leave=False):

    return(df)



def main():
    with open('file.txt', 'r') as file:
        TotalLinks =file.readlines()

    parts = [round(len(TotalLinks)/10)*i for i in range(10)]
    parts.append(len(TotalLinks))
    names = [TotalLinks[parts[i]:parts[i+1]] for i in range(10)]

    pool = ThreadPool(10)
    l = pool.map(GetData, names)
    itog_data=Reduce_2(l)
    pd.DataFrame.to_csv(itog_data,'output.csv')

if __name__=='__main__':
    print ("start")
    main()
    print ("finish")

  • Вопрос задан
  • 75 просмотров
Пригласить эксперта
Ответы на вопрос 1
@dkdoter
play dota
Совет по идее с генератором:
Вместо yield a нужно yield from a
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Popmechanic Москва
от 100 000 до 150 000 руб.
Panda Media Нижний Новгород
от 70 000 руб.
Marilyn Москва
от 100 000 до 160 000 руб.
22 авг. 2018, в 08:57
113 руб./за 1000 зн.
22 авг. 2018, в 08:50
10000 руб./за проект
22 авг. 2018, в 06:57
150 руб./в час