Как сделать цикл добавить функцию в пул многопроцессорных задач в PYTHON? - PullRequest
0 голосов
/ 12 сентября 2018

Мне нужна помощь с многопроцессорностью в Python. Я хочу, чтобы мой код извлекал ссылку из каждой строки CSV-файла, а затем вставлял каждую в экземпляр функции. Мне нужно, чтобы эти функции работали одновременно. В настоящее время мой код извлекает ссылку из CSV и передает ее функции по одной - это означает, что больше нельзя запускать функции ссылки, пока не завершится одна из них.

Я думаю, что может потребоваться многопоточность или многопроцессорность, однако мне не удалось правильно реализовать ее с помощью цикла.

Любая помощь будет принята с благодарностью! Спасибо

links = csv.reader(open('links.csv','r'))
row = list(csv.reader(open('links.csv','r')))
row_count = sum(1 for row in links)
for i in range(0,row_count):
    link = ((str(row[i])).replace("'","")).replace("[","").replace("]","")
    print(link)
    LINKFUNCTIONPROCESS(link)

1 Ответ

0 голосов
/ 12 сентября 2018

С этот ответ

import multiprocessing
p = multiprocessing.Pool()
links = csv.reader(open('links.csv','r'))
row = list(csv.reader(open('links.csv','r')))
row_count = sum(1 for row in links)
for i in range(0,row_count):
    link = ((str(row[i])).replace("'","")).replace("[","").replace("]","")
    print(link)
    p.apply_async(LINKFUNCTIONPROCESS, [link]) 


p.close()
p.join()
...