Я пытаюсь прочитать и обработать 1000 файлов, но, к сожалению, требуется около 3 раза, чтобы обработать файл, как и для чтения его с диска, поэтому я хотел бы обработать эти файлы, как они читаются (и, хотя я продолжаю читать в дополнительных файлах). < /p>
В идеальном мире у меня есть генератор, который считывает по одному файлу за раз, и я хотел бы передать этот генератор в пул работников, которые обрабатывают элементы из генератора, поскольку они (медленно) сгенерируются.def process_file(file_string):
...
return processed_file
pool = Pool(processes=4)
path = 'some/path/'
results = pool.map(process_file, (open(path+part,'rb').read() for part in os.listdir(path)))
< /code>
Единственная проблема с кодом выше заключается в том, что все файлы читаются в память до начала пула, что означает, что мне нужно ждать диска, чтобы прочитать все, и я также потребляю большое количество памяти.
Подробнее здесь: https://stackoverflow.com/questions/341 ... s-files-in
Python Multiprocessing на генераторе, который считывает файлы в ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение