Этот вопрос закрыт для ответов, так как повторяет вопрос Как перечитать все строчки в текстовом файле в режиме многопотока?
@allias173

Как разделить чтение строк файла на потоки?

есть текстовик base такого вида:
1
2
3
4
...
1000


То есть на каждой строчке от 1 до 1000
for a in base:
    действие над строкой

Так его считывать слишком долго и я хочу сделать для этого, например, 5 потоков

Как сделать, что бы несколько потоков не считывали одну и ту же строчку?

Всё, что я придумал это считать к-во строк в файле:
with open('base.txt') as f:
	c = sum(1 for _ in f)

затем разделить к-во строк на к-во потоков
и полученное число это и будет к-во строк, которое нужно обработать каждому потокоу, то есть если строчек 1000, а потоков 5, то первый поток обрабатывает от 1 до 200, второй поток от 201 до 400 и так далее.

Но почему-то мне кажется, что можно всё сделать намного проще. Но как?
  • Вопрос задан
  • 727 просмотров
Ответы на вопрос 1
@MechanicZelenyy
Многопоточное чтение файла это сложная тема и для маленьких файлов (меньших нескольких гигабайт) не особо нужное. А если файл большой то имеет смысл использовать какой0нибудь готовый формат, который умеет в многопоточное считывание из коробки.
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы