import os
data_files = [(x[0], x[2]) for x in os.walk(root_dir)]
http://docs.python.org/library/os.html#os.walk
Это даст вам файлы для каждого подкаталога, содержащегося в root_dir
(наряду с файлами в самом root_dir
, конечно) в виде кортежей в формате [(dirpath1, [file1, file2, ...]), (dirpath2, [file3, file4, ...]), ...]
Я дал вам это как мой ответ, потому что я предполагаю (или, скорее, надеюсь), что при таком количестве файлов вы сохраняете их должным образом, а не располагаете их все в одном каталоге безподкаталоги.
Это было давно, но возвращаясь к этому, я теперь понимаю, что для длинного списка файлов выражение генератора, вероятно, будет более эффективным.Для этого необходимо очень простое изменение;замените внешние скобки на круглые скобки, то есть
import os
data_file_gen = ((x[0], x[2]) for x in os.walk(root_dir))
И data_file_gen
можно затем использовать везде, где итерировали data_files
(при условии, что вы используете генератор только один раз; если предполагается использовать генераторнесколько раз вам придется заново создавать генератор для каждого использования. В таких случаях может быть лучше просто использовать метод list, если только память не станет проблемой.).