Несовместим ли fnmatch.fnmatch с синтаксисом сопоставления файлов шаблонов Unix?
Я использую Python 3.7.6 и функцию fnmatch.fnmatch для сопоставления имени файла с заданным шаблоном. Большинство моих тестов работали, но, в частности, следующий пример не возвращает ожидаемого значения. Дайте следующий экзанок:
> fnmatch.fnmatch('_foo\bar.exe', '^_*')
False
Что я пытаюсь сделать, чтобы сопоставить любое имя файла, компонент которого начинается с _
. Любая помощь высоко ценится
1 ответ
Решение
Это не место, где Python не соответствует спецификации POSIX. Синтаксис сопоставления шаблонов UNIX не требует^
иметь какое-либо особое значение, кроме описания набора символов в квадратных скобках.
Видеть:
В этом есть смысл: глобусы неявно привязаны - они всегда соответствуют только в начале, поэтому нет причин поддерживать явную привязку.