На этом шаге мы рассмотрим оставшиеся функции.
Как было отмечено на предыдущем шаге, функция listdir() возвращает список объектов в указанном каталоге. Проверить, на какой тип объекта ссылается элемент этого списка, можно с помощью следующих функций из модуля os.path:
>>> import os.path >>> os.path.isdir(r"С:\book\file.txt") False >>> os.path.isdir ("C:\\book\\") True
>>> os.path.isfile(r"C:\book\file.txt") True >>> os.path.isfile("C:\\book\\") False
Функция listdir() возвращает список всех объектов в указанном каталоге. Если необходимо ограничить список определенными критериями, то следует воспользоваться функцией glob(<Путь>) из модуля glob. Функция glob() позволяет указать в пути следующие специальные символы:
Можно перечислить символы или указать диапазон через дефис.
В качестве значения функция возвращает список путей к объектам, совпадающим с шаблоном. Пример использования функции glob() приведен ниже.
>>> import os, glob >>> os.listdir ("С:\\book\\folder1\\") ['file.txt', 'file1.txt', 'file2.txt', 'folder1_1', 'folder1_2', 'index.html'] >>> glob.glob ("C:\\book\\folder1\\*.txt") ['C:\\book\\folder1\\file.txt', 'C:\\book\\folder1\\file1.txt', 'C:\\book\\folder1\\file2.txt'] >>> glob.glob("C:\\book\\folder1\\*.html") # Абсолютный путь ['C:\\book\\folder1\\index.html'] >>> glob.glob("folder1/*.html") # Относительный путь ['folder1\\index.html1] >>> glob.glob("C:\\book\\folder1\\*[0-9].txt") ['C:\\book\\folder1\\file1.txt', 'C:\\book\\folder1\\file2.txt'] >>> glob.glob("С:\\book\\folderl\\*\\*.html") ['C:\\book\\folder1\\folder1_1\\index.html', 'C:\\book\\folder1\\folder1_2\\test.html']
Обратите внимание на последний пример. Специальные символы могут быть указаны не только в названии файла, но и в именах каталогов в пути. Это позволяет просматривать сразу несколько каталогов в поисках объектов, соответствующих шаблону.
На следующем шаге мы рассмотрим исключения, возбуждаемые файловыми операциями.