Несовместим ли fnmatch.fnmatch с синтаксисом сопоставления файлов шаблонов Unix?

Я использую Python 3.7.6 и функцию fnmatch.fnmatch для сопоставления имени файла с заданным шаблоном. Большинство моих тестов работали, но, в частности, следующий пример не возвращает ожидаемого значения. Дайте следующий экзанок:

> fnmatch.fnmatch('_foo\bar.exe', '^_*')
False

Что я пытаюсь сделать, чтобы сопоставить любое имя файла, компонент которого начинается с _. Любая помощь высоко ценится

1 ответ

Решение

Это не место, где Python не соответствует спецификации POSIX. Синтаксис сопоставления шаблонов UNIX не требует^иметь какое-либо особое значение, кроме описания набора символов в квадратных скобках.

Видеть:


В этом есть смысл: глобусы неявно привязаны - они всегда соответствуют только в начале, поэтому нет причин поддерживать явную привязку.

Другие вопросы по тегам