DANic
@DANic
Интроверт

Как использовать python для работы с файлами в очень больших папках?

Есть папка с огромным числом вложенных папок и файлов на разных уровнях

find . -type f | wc -l
14599651

find . -type f > file_list
отрабатывает хоть и не быстро

Хочу сделать аналогичное используя pathlib, скрипт падает минут через 20 с ошибкой
Process finished with exit code 137

from pathlib import Path


path = Path('/foler')


def get_file_list_pathlib(directory, file_name):
    with open(file_name, "w") as f:
        for path in sorted(directory.rglob('*')):
            if path.is_file():
                f.write(str(path) + "\n")


get_file_list_pathlib(path, 'file_list')


Собрать список файлов не конечная задача, нужно будет собрать разную статистику внутри этого каталога

Как понять что именно стало причинной падения?
Как ее устранить?
Как используя python эффективно работать с очень большими папками (много вложенных подпапок и фалов)?
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 1
@skrimafonolog
Например, sorted()
Для работы этой функции поди нужно весь список иметь загруженным в оперативную память?
Посмотрите сколько жрет ваша программа оперативки.

Может статься, чо для такого большого количества файлов, пожалуй, что и не желательно их перебирать, загружая список в память целиком.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы