python список файлов в папке

Автор: Igor Kirsanov

Чтобы узнать список файлов в папке с помощью python необходимо

  1. указать в какой папке ищем
  2. воспользоваться системной библиотекой os и ее функцией listdir
пример, список всех файлов лежащих в папке content рядом с нашим скриптом, путь относительный
# -*- coding: UTF-8 -*-
from os import listdir

print listdir("content")

на выходе получаем ответ в виде списка языка python, для дальнейшей обработки вместо вывода на экран необходимо присвоить значение какой-либо переменной. Если в директории есть папки, то мы в этом списке получим и их. Если нужны только файлы их нужно отфильтровать, решения ниже

Пример 2 - список всех текстов файлов в текущей папке


# -*- coding: UTF-8 -*-
from os import listdir

files = listdir(".")

mytxt = filter(lambda x: x.endswith('.txt'), files)
print mytxt

В данном случае использовали относительный путь в виде одной точки указывающий на текущую директорию для скрипта.

Пример 3. Использования функции isfile для отображения только файлов.
# -*- coding: UTF-8 -*-
from os import listdir
from os.path import isfile
from os.path import join as joinpath

mypath = "content"
for i in listdir(mypath):
    if isfile(joinpath(mypath,i)):
        print i

Если работаем в windows не забываем, что может потребоваться декодирование кириллических имен и путей с помощью функции .decode('cp1251') или .encode('cp1251')