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 эффективно работать с очень большими папками (много вложенных подпапок и фалов)?
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ответы на вопрос 1
@skrimafonolog
Например, sorted()
Для работы этой функции поди нужно весь список иметь загруженным в оперативную память?
Посмотрите сколько жрет ваша программа оперативки.

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

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

Войти через центр авторизации
Похожие вопросы
AGIMA Москва
от 180 000 ₽
Level Travel Москва
До 160 000 ₽
от 100 000 до 160 000 ₽
28 февр. 2020, в 16:33
450 руб./за проект
28 февр. 2020, в 16:23
20000 руб./за проект
28 февр. 2020, в 16:20
300 руб./за проект