Skip to content

Директории в python

Проверка директории

os.path.isdir()

Python
>>> os.path.isdir('.')
True
>>> os.path.isdir('sasd')
False

exists()

Python
>>> import os
>>> os.path.exists('oops.txt')
True
>>> os.path.exists('./oops.txt')
True
>>> os.path.exists('waffles')
False
>>> os.path.exists('.')
True
>>> os.path.exists('..')
True

ls

Можно вывести содержимое директории (вернется список из файлов и директорий):

Python
>>> import os
>>> os.listdir('tmp')
['.vagrant', 'abb', 'zaza', 'sasd']
>>> os.listdir('empty_dir')
[]
>>>

Еще один сценарий использования:

Python
>>> for elem in os.listdir('tmp'):
        os.path.abspath(os.path.join('tmp', elem))

'/home/user/tmp/.vagrant'
'/home/user/tmp/abb'
'/home/user/tmp/zaza'
'/home/user/tmp/sasd'

mkdir()

Python
>>> os.mkdir('poems')
>>> os.path.exists('poems')
True

rmdir()

Python
>>> os.rmdir('poems')
>>> os.path.exists('poems')
False

cd / chdir()

Python
>>> import os
>>> os.chdir('poems')
>>> os.listdir('.')
['mcintyre']

Поиск по шаблону в директории. glob()

glob() ищет совпадающие имена файлов/каталогов, используя правила оболочки Unix, а не RegEx:
* - всё
? - один любой символ
[abc] - символы a, b или c
[!abc] - все символы, кроме a, b или c.

Все файлы и каталоги, имена которых начинаются с буквы m:

Python
>>> import glob
>>> glob.glob('m*')
['mcintyre']

И т.д.

Python
>>> glob.glob('??')
[]
>>> glob.glob('m??????e')
['mcintyre']
>>> glob.glob('[klm]*e')
['mcintyre']


Соус: Книга "Простой Python" --> Глава 14. "Файлы и каталоги"

python