fnmatch.fnmatch 是否与 Unix 模式文件匹配语法不兼容?

Is fnmatch.fnmatch incompatible to the Unix pattern filematching syntax?

我正在使用 Python 3.7.6 和 fnmatch.fnmatch 函数来匹配具有给定模式的文件名。我的大部分测试都有效,但具体而言,以下示例并未 return 预期的值。给出以下exanoke:

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

我尝试做的是匹配任何其组件以 _ 开头的文件名。非常感谢任何帮助

这不是Python不符合POSIX规范的地方。 UNIX 模式匹配语法不要求 ^ 具有任何特殊含义, 除了方括号字符集描述中的

参见:


这是有道理的:Glob 是隐式锚定的——它们总是只在开头匹配,所以没有理由支持显式锚点。