Проверяя эффективность os.walk
, я создал 6,00,000
файлов со строкой Hello <number>
(где число — это просто число, обозначающее номер файла в каталоге), например содержимое файлов в каталоге будет выглядеть так: -
File Name | Contents
1.txt | Hello 1
2.txt | Hello 2
.
.
600000.txt|Hello 600000
Теперь я запустил следующий код: -
a= os.walk(os.path.join(os.getcwd(),'too_many_same_type_files')) ## Here, I am just passing the actual path where those 6,00,000 txt files are present
print a.next()
Проблема, которую я чувствовал, заключалась в том, что a.next()
занимает слишком много времени и памяти, потому что третий элемент, который a.next()
вернет, — это список файлов в каталоге (в котором 600000 элементов). Итак, я пытаюсь найти способ уменьшить сложность пространства (по крайней мере), каким-то образом заставив a.next()
возвращать объект генератора в качестве третьего элемента кортежа вместо списка имен файлов.
Будет ли это хорошей идеей, чтобы уменьшить сложность пространства?
readdir()
дает вам записи каталога одну за другой, и я помню, как это работало и в DOS. А вот про Windows не знаю... - person Sven Marnach   schedule 16.08.2012