Python 使用glob.has\u magic可以吗?

Python 使用glob.has\u magic可以吗?,python,glob,Python,Glob,我有一段代码,我想知道路径是否有shell通配符,这看起来像是在中心位置定义的东西。我发现glob.has\u magic()提供了这一点(它只是一个正则表达式:'[*?[]')。但是这个方法没有列在模块的\uuu all\uuu列表中,也没有出现在pydoc中 我应该把这个正则表达式复制到我的代码中吗?(我不愿意) 在python的未来版本中是否存在删除此方法的风险,因为它没有出现在文档中?我个人会复制regexp。glob模式的定义不会改变,迫使您在代码中更改它。stdlib无法从外部提供此

我有一段代码,我想知道路径是否有shell通配符,这看起来像是在中心位置定义的东西。我发现glob.has\u magic()提供了这一点(它只是一个正则表达式:
'[*?[]'
)。但是这个方法没有列在模块的
\uuu all\uuu
列表中,也没有出现在pydoc中

我应该把这个正则表达式复制到我的代码中吗?(我不愿意)


在python的未来版本中是否存在删除此方法的风险,因为它没有出现在文档中?

我个人会复制regexp。glob模式的定义不会改变,迫使您在代码中更改它。stdlib无法从外部提供此方法的事实意味着没有承诺它在未来不会改变。我不担心它在未来会改变(原因与上面相同:全球模式的定义不会改变)但是我担心,如果模块的实现被重构而不再需要它,它可能会被删除。

注意,也不能保证它会在不同的python实现中(例如,
jython
pypypy
)。尽管如此,因为它位于纯python模块中,这也不太可能。还有一个次要的侧重点:
has_magic
不是检查shell通配符,而是检查特殊的glob字符。这不完全是一回事。括号范围不是通配符,您的特定shell可能实现子集(Windows cmd.exe)或超集(bash或zsh)但我猜你实际上是在用正则表达式来表示“glob特殊字符”而不是“当前用户shell的通配符”,在这种情况下,你可以忽略这种挑剔。@abarnert:是的,我想“glob特殊字符”应该更具体些。