Popen не возвращает то, что я ожидал от вызова `find` - PullRequest
0 голосов
/ 06 августа 2020

Я использовал

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?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...