由于这个答案,可能需要这样做:
path = r"D:Tempabc[def] # (i have many others to process)
path = path.replace('[', '[[]').replace(']', '[]]')
# now we can use glob here with path
然而,第一个replace
与第二个replace
混淆,结果不是预期的,即D:Tempabc[[]def[]]
.
我发现的唯一解决方案是使用临时字符~
以避免 2 个replace
相互混淆:
path = path.replace('[', '[[~').replace(']', '[]]').replace('~', ']')
有没有一种好方法可以使用 2 个替代品而第一个对第二个有影响?
你不需要替换]
.
要替换的特殊字符只有'?'
、'*'
和'['
,由glob.escape
处理。
>>> print(glob.escape(path))
D:Tempabc[[]def]