基于字符串的宽容相等性测试

5
我是一个Python新手,遇到了一个难以解决的问题。
我有一个定义路径的字符串,其中所有空格都被转换为下划线。如何找出它是否对应于真实路径?
例如,像这样的字符串:/some/path_to/directory_1/and_to/directory_2,与真实路径:/some/path_to/directory 1/and_to/directory 2
请注意,真实路径可以同时包含空格和下划线。
如何将其传递给os.path.exists()函数呢?
谢谢 alessandro
1个回答

5
使用glob,但是需要将所有下划线替换为范围[ _]
import glob
glob.glob('/some/path_to/directory_1/and_to/directory_2'.replace('_', '[ _]'))

请注意,如果您的路径包含字符[,则此操作将失败。您可以通过首先将[替换为[[]来解决此问题。

通过首先将[替换为[[] - Constantin
是这样的吗? p1='/some/path_to/directory_1/and_to/directory_2'.replace('_', '[ _]')
p2='/some/path_to/directory_1/and_to/directory_2'.replace('[', '[[]') glob.glob(p2)
- alessandro
那些忘记了 glob 模块的人注定会在尝试重新创建它几分钟后,才会刷新 SO 问题并查看来自某个没有这样做的人的答案。 - MattH
你还需要以同样的方式“转义” ?* - Glenn Maynard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接