Я использовал
find /path/to/dir/ -name "*.csv" > sometextfile.txt
, чтобы найти кучу файлов на сетевом диске и сохранить их в текстовом файле. Это займет пару часов. Позже я прочитал бы все строки (несколько миллионов) в python и обработал бы каждый файл.
Я хотел бы сделать это быстрее, в идеале, запустив find
из python и обработав файлы по мере их нахождения.
Базовый c python сценарий того, что у меня есть, это
from subprocess import Popen, PIPE
with Popen("find . -name '*.csv'".split(), stdout=PIPE) as proc:
for line in proc.stdout:
# printing as a replacement for my processing function
print(line, end="")
Запуск приведенного выше сценария python в небольшом каталоге с несколько сотен файлов CSV ничего не выводят.
Запуск find /path/to/dir/ -name "*.csv" | wc -l
очень быстро печатает 637.
Не хватает ли компонента в моем вызове Popen?