import glob glob.escape(pathname)
pathname
- строка со специальными символами.Функция escape()
модуля glob
экранирует все специальные символы '?'
, '*'
и '['
, используемые в шаблоне функции glob.glob()
.
Такое поведение полезно, если необходимо сопоставить произвольную литеральную строку, в которой могут быть вышеуказанные специальные символы.
Специальные символы в разделах drive/UNC
не экранируются, например в Windows выражение escape('//?/c:/Quo vadis?.txt')
возвращает '//?/c:/Quo vadis[?].txt'
.
Иногда необходимо искать файлы с именами, содержащими специальные метасимволы, которые glob.glob()
использует для своих шаблонов.
Функция glob.escape()
создает подходящий шаблон с экранированными специальными символами, чтобы они не расширялись и не интерпретировались как специальные.
import glob specials = '?*[' for char in specials: pattern = 'dir/*' + glob.escape(char) + '.txt' for name in sorted(glob.glob(pattern)): print(name) # dir/file?.txt # dir/file*.txt # dir/file[.txt