python将反斜杠替换为斜杠

python将反斜杠替换为斜杠,python,string,filepath,backslash,Python,String,Filepath,Backslash,如何转义字符串中的反斜杠:'pictures\12761_1.jpg' 我知道原始字符串。例如,如果我从xml文件中获取'pictures\12761_1.jpg'值,如何将str转换为raw?您可以将string.replace()方法与rawstring一起使用 Python 2: >>> print r'pictures\12761_1.jpg'.replace("\\", "/") pictures/12761_1.jpg Python 3: >>>

如何转义字符串中的反斜杠:
'pictures\12761_1.jpg'


我知道原始字符串。例如,如果我从xml文件中获取
'pictures\12761_1.jpg'
值,如何将str转换为raw?

您可以将string
.replace()
方法与rawstring一起使用

Python 2:

>>> print r'pictures\12761_1.jpg'.replace("\\", "/")
pictures/12761_1.jpg
Python 3:

>>> print(r'pictures\12761_1.jpg'.replace("\\", "/"))
pictures/12761_1.jpg
这里有两件事需要注意:

  • 首先,把r放在前面,把文本读作一个抽绳 一串如果您不给出,这里将出现Unicode错误
  • 而且replace方法的第一个参数中有两个反斜杠。原因是反斜杠是一种与其他字母一起用作转义序列的文字。现在您可能想知道什么是转义序列。所以转义序列是一个字符序列,当在字符串文本或字符中使用时,它并不表示自身。它由两个或多个以反斜杠开头的字符组成。类似于“\n”表示换行符,同样也有许多换行符。所以为了逃逸反斜杠本身,通常是逃逸序列的开始,我们使用另一个反斜杠来逃逸它

我知道第二部分有点混乱,但我希望它有一定的意义。

您也可以使用拆分/联接:

print "/".join(r'pictures\12761_1.jpg'.split("\\"))
编辑:

您可以使用的另一种方法是在检索数据时准备数据(例如,想法是在分配给变量之前更新字符串)-例如:

f = open('c:\\tst.txt', "r")
print f.readline().replace('\\','/')

>>>'pictures/12761_1.jpg\n'

我知道这不是你确切要求的,但我认为这会更好。 最好只知道目录名,然后使用os.path.join(目录,文件名)

“os.path.join(路径,*路径) 智能地连接一个或多个path组件。返回值是path和*path的任何成员的串联,正好有一个目录分隔符(os.sep)在每个非空部分(最后一个除外)之后,这意味着如果最后一个部分为空,则结果将仅以分隔符结束。如果组件是绝对路径,则会丢弃之前的所有组件,并从绝对路径组件继续连接“


你看过我的问题了吗?我写道我知道r'pictures\12761_1.jpg.split(\\”),但是如果我已经有了带有'pictures\12761_1.jpg'值的变量,我怎么能避开反斜杠呢?如果我错过了这个,很抱歉,但是你是在哪里写的?我在没有原始数据的情况下也尝试过同样的方法-例如,在Python2.6控制台中键入以下内容:print“/”.join('pictures\12761_1.jpg.split(\\”)它仍然以同样的方式工作。或者我错过了什么?如果你在Python2.6控制台中尝试,你会看到'picturesW61_1.jpg'@Artsiom Rudzenka“我知道原始字符串”-如果thaw不清楚的话,很抱歉。