str.将反斜杠替换为正斜杠

  • 本文关键字:替换 str python string path
  • 更新时间 :
  • 英文 :


我想用python将windows路径中的反斜杠替换为正斜杠/。不幸的是,我尝试了几个小时,但我无法解决这个问题…我在这里看到了其他问题,但我仍然找不到解决方案有人能帮帮我吗?

这就是我正在尝试的:

path = "\ftacadminrecpir"
path = path.replace("", "/")

但是我得到了一个错误(SyntaxError: EOL而扫描字符串文字),并没有返回我想要的路径://ftac/admin/rec/pir,我怎么解它?

我也尝试了path = path.replace(os.sep, "/")path = path.replace("\", "/"),但两种方法的第一个双反斜杠变成单一和a被删除…

天哪,这比最初看起来要复杂一些。

你的问题是你把你的窗口路径存储为普通字符串,而不是原始字符串。从字符串到其原始表示的转换是有损且丑陋的。

这是因为当您创建像"a"这样的字符串时,解释器会看到一个特殊字符"x07"

这意味着您必须手动知道您所期望的这些特殊字符中的哪一个,然后如果您看到它们的表示(例如在这个示例中),则[损失]返回:

def str_to_raw(s):
raw_map = {8:r'b', 7:r'a', 12:r'f', 10:r'n', 13:r'r', 9:r't', 11:r'v'}
return r''.join(i if ord(i) > 32 else raw_map.get(ord(i), i) for i in s)
>>> str_to_raw("\ftacadminrecpir")
'\ftac\admin\rec\pir'

现在您可以使用pathlib模块,它可以以系统无关的方式处理路径。在您的示例中,您知道您有类似Windows的路径作为输入,因此您可以使用如下命令:

import pathlib
def fix_path(path):
# get proper raw representaiton
path_fixed = str_to_raw(path)
# read in as windows path, convert to posix string
return pathlib.PureWindowsPath(path_fixed).as_posix()
>>> fix_path("\ftacadminrecpir")
'/ftac/admin/rec/pir'

相关内容

  • 没有找到相关文章

最新更新