Python中的Replace方法\

2024-04-25 23:27:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Python中使用replace-string方法,发现了一些我无法理解的东西。你知道吗

将用python编写文件夹的方式改为windows表示法,我发现replace方法会将这个double/改为double\而不是只按预期的一个\。你知道吗

folder_im_wdows = folder_im_wdows.replace("//","\\")

但最令人印象深刻的是,当我尝试下一个解决方案时

folder_im_wdows = folder_im_wdows.replace("//",chr(92))

Python也这么做。。。你知道吗

原始变量是://xxxxx//xxxx//xxxx//xxxx//xxxx//xxxxx 我想得到->;\xxx\x\x\x

替换方法发生了什么?你知道吗


Tags: 方法文件夹stringwindows方式folder解决方案replace
2条回答

这是因为python的CLI转义反斜杠。你知道吗

python的CLI示例:

>>> str = "abc//def//fgh"
>>> str.replace("//", "\\")
'abc\\def\\fgh'
>>> print(str.replace("//", "\\"))
abc\def\fgh
>>>

另外,您应该使用\\,而不仅仅是\,因为您需要转义反斜杠字符,我确实需要。你知道吗

使用操作系统路径对于使用路径名:

import os

os.path.normpath('C:/Users/Bob/My Documents')

你知道吗os.path.abspath路径也会做这项工作(它使用操作系统路径)你知道吗

注意:要求主机是windows,如果不是这样的话你可以使用ntpath.normpath路径直接

https://docs.python.org/library/os.path.html#os.path.normpath

避免正则表达式,替换等等。你会以某种微妙的方式弄错的。你知道吗

相关问题 更多 >