@neotmirnyj

Multiprocessing читает каждую строчку из txt файла на каждом процессоре?

Подскажите пожалуйста, как правильно мне сделать, уже второй день не получается настроить.

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

Например, первая строчка вывелась так
111
111
111
111
111
111
111
111

вторая так

222
222
222
222
222
222
333
333

и т.д.

Каждый процессор читает строчки повторно!

def main():
.......

file = open("txt.txt", 'r')

if __name__ == '__main__':
    for r in range(cores):
        multiprocessing.Process(target=main).start()
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 1
shurshur
@shurshur
Сисадмин, просто сисадмин...
Один из самых простых способов это сделать - назначить каждому процессу из N штук свой номер и пусть первый читает строки 1, N+1, 2N+1, ..., второй 2, N+2, 2N+2, ... и так далее. Строки других процессов просто пропускать.

# number - номер процесса от 0 до total-1
# total - всего процессов
def process(number, total):
   for i, l in enumerate(f):
      if i % total == number:
          ...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы