使用 2 个字符串替换,第一个字符串对第二个字符串没有影响



由于这个答案,可能需要这样做:

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]

最新更新