在Python3.x中解析转义字符

在Python3.x中解析转义字符,python,python-3.x,text,Python,Python 3.x,Text,我有 path=“/Users/xx/datasets/yyy/DefinedTS\Training\00000” 我只想用“/”替换“\”转义字符。 我试过: path.replace("/","\") 但我得到了一个错误:EOL在扫描字符串文字时 我还尝试了regex,编写了自己的函数,尝试转换为ascii并替换,但似乎所有的事情都反映了同样的问题 编辑: 我是说我试过了 path.replace(“\”,“/”) 感谢Uncleziv指出它。因为\是一个特殊字符,所以需要用另一个字符

我有

path=“/Users/xx/datasets/yyy/DefinedTS\Training\00000”
我只想用“/”替换“\”转义字符。 我试过:

path.replace("/","\")
但我得到了一个错误:EOL在扫描字符串文字时

我还尝试了regex,编写了自己的函数,尝试转换为ascii并替换,但似乎所有的事情都反映了同样的问题

编辑: 我是说我试过了

path.replace(“\”,“/”)

感谢Uncleziv指出它。

因为\是一个特殊字符,所以需要用另一个字符转义\

path=path.replace(“/”,“\\”)

[编辑]

在看到Unclzeiv的答案后,我同意您需要在用反斜杠替换它之前将其设置为原始字符串。因此,它应该是:

path = r"/Users/xx/datasets/yyy/DefinedTS\Training\00000"
path = path.replace("/","\\")

有许多问题:

  • 路径.replace
    行的语法不正确
    \
    是转义字符,因此需要通过在另一个
    \
    前面加上前缀来转义它
  • path.replace
    的工作方式正好相反:首先是要替换的东西,然后是要替换的东西
  • 您的字符串不再包含所有反斜杠,因为它们已被解释为。。。转义字符。您需要创建一个“原始”字符串
总而言之:

path = r"/Users/xx/datasets/yyy/DefinedTS\Training\00000"
path = path.replace("\\", "/")
print(path)

看看这个,它可能会有帮助:。实际上,“下线”的意思是“线的终点”。不是python方面的专家,但它可能与
\n
有关,即行尾,其中包含一个“\`是的,这就是问题所在。我用下面我接受的答案解决了这个问题:)谢谢谢谢。这起作用了。不过还有一件事:.replace不是就地操作,因此我必须将其分配给新变量。