如何在python3中将反斜杠字符串转换为正斜杠字符串?

时间:2021-07-19 12:47:14

标签: python-3.x os.path pathlib

我在我的 ubuntu 机器上使用 python3。 我有一个字符串变量,它包含一个带反斜杠的路径,我需要将它转换为正斜杠字符串。所以我尝试了

import pathlib
s = '\dir\wnotherdir\joodir\more'
x = repr(s)
p = pathlib.PureWindowsPath(x)
print(p.as_posix())

这将正确打印为

/dir/wnotherdir/joodir/more

但是对于不同的其他字符串路径,它的行为很奇怪。例如,对于字符串,

'\dir\aotherdir\oodir\more'

它正确替换了反斜杠,但由于原始字符串中的字符“a”而导致值错误

/dir/x07otherdir/oodir/more

这种行为的原因是什么?

1 个答案:

答案 0 :(得分:3)

这与路径本身无关。这里的问题是 \a 被解释为 ASCII BELL。根据经验,每当您想禁用 escaped 字符串文字的特殊解释时,您应该使用 raw 字符串:

>>> import pathlib
>>> r = r'\dir\aotherdir\oodir\more'
>>> pathlib.PureWindowsPath(r)
PureWindowsPath('/dir/aotherdir/oodir/more')
>>>