Spec-Zone.ru › Python 2.7

glob — Расширение шаблонов путей в стиле Unix

Исходный код: Lib/glob.py

Модуль glob находит все имена путей, соответствующие указанному шаблону в соответствии с правилами, используемыми оболочкой Unix, хотя результаты возвращаются в произвольном порядке. Расширение тильды не выполняется, но *, ?, и диапазоны символов, выраженные с помощью [], будут правильно сопоставлены. Это делается с помощью функций os.listdir() и fnmatch.fnmatch(), а не путём фактического вызова подоболочки. Обратите внимание, что в отличие от fnmatch.fnmatch(), glob обрабатывает имена файлов, начинающиеся с точки (.) как особые случаи. (Для расширения тильды и переменных оболочки используйте os.path.expanduser() и os.path.expandvars().)

Для буквального совпадения заключите метасимволы в квадратные скобки. Например, '[?]' соответствует символу '?'.

glob.glob(pathname)

Возвращает, возможно, пустой список имён путей, которые соответствуют pathname, который должен быть строкой, содержащей спецификацию пути. pathname может быть абсолютным (например, /usr/src/Python-1.5/Makefile) или относительным (например, ../../Tools/*/*.gif) и может содержать символы подстановки в стиле оболочки. Разбитые символьные ссылки включаются в результаты (как в оболочке).

glob.iglob(pathname)

Возвращает итератор, который генерирует те же значения, что и glob(), без фактического хранения всех значений одновременно.

Введено в версии 2.5.

Например, рассмотрим каталог, содержащий только следующие файлы: 1.gif, 2.txt, и card.gif. glob() произведёт следующие результаты. Обратите внимание, как сохраняются любые ведущие компоненты пути.

>>> import glob
>>> glob.glob('./[0-9].*')
['./1.gif', './2.txt']
>>> glob.glob('*.gif')
['1.gif', 'card.gif']
>>> glob.glob('?.gif')
['1.gif']

Если в каталоге содержатся файлы, начинающиеся с ., они по умолчанию не будут сопоставлены. Например, рассмотрим каталог, содержащий card.gif и .card.gif:

>>> import glob
>>> glob.glob('*.gif')
['card.gif']
>>> glob.glob('.c*')
['.card.gif']

См. также

Module fnmatch

Расширение имён файлов (не путей) в стиле оболочки

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/2.7/library/glob.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API