我在我的 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
这种行为的原因是什么?
答案 0 :(得分:3)
这与路径本身无关。这里的问题是 \a
被解释为 ASCII BELL。根据经验,每当您想禁用 escaped
字符串文字的特殊解释时,您应该使用 raw
字符串:
>>> import pathlib
>>> r = r'\dir\aotherdir\oodir\more'
>>> pathlib.PureWindowsPath(r)
PureWindowsPath('/dir/aotherdir/oodir/more')
>>>