У меня очень большой файл txt.file (около 20G), могу ли я использовать многопроцессорный процесс для чтения всего файла вместо того, чтобы читать его с первой строки до последней?многопроцессорное чтение одного файла в python
Например, у меня есть 4 процесса, и я сначала подсчитываю строки файла (предположим, что у него есть 2000 строк). Процесс 1 читает строку 1 ~ 500, а процесс 2 читает 501 ~ 1000, я хочу знать, возможно ли это (если один процесс читает, может ли другой процесс читать одновременно?). Возможно, этот вопрос касается того, как разделить файл txt.
Если все в порядке. Как это сделать? Код для одного процесса файла, как это:
file = open(file_path,"r",encoding = 'utf-8')
alllines = file.readlines()
file.close()
for line in alllines:
to do...
Я понятия не имею, как изменения в alllines стать предложения numbers.Any? Заранее спасибо.
В вашем вопросе много «может быть». Какой у Вас вопрос? Что вы хотите делать с содержимым файла? –
Зачем вам нужен многопроцессор? Эффективность? – BlackMamba
Это можно сделать, но дисковый ввод-вывод - это последовательная операция; вы не можете одновременно просматривать несколько потоков/процессов из разных частей диска - считывание дисков закончится прыжком назад и вперед между различными частями файла, в зависимости от того, какой поток активен, что обычно ухудшает производительность, чем если бы вы просто сделали это в одном потоке. – dano