我正在python中编写跨平台文件资源管理器。我试图将路径中的任何反斜杠转换为正斜杠,以便以一种格式处理所有路径。
我不仅尝试使用string.replace(str,'\\','/'),还尝试手动创建方法来搜索字符串并替换实例,两者都无法正常工作,路径名称,例如:
\dir\anotherdir\foodir\more
更改为:
/dir/anotherdir\x0oodir/more
我假设这与Python如何表示转义字符或类似的东西有关。我该如何防止这种情况发生?
答案 0 :(得分:11)
答案 1 :(得分:3)
这不起作用:
>>> s = 'a\\b'
>>> s
'a\\b'
>>> print s
a\b
>>> s.replace('\\','/')
'a/b'
编辑:
当然这是一个基于字符串的解决方案,如果您正在处理文件系统路径,那么使用 os.path 会更明智。
答案 2 :(得分:3)
详细说明this answer, 通过pathlib,您可以使用as_posix方法:
>>> import pathlib
>>> p = pathlib.PureWindowsPath(r'\dir\anotherdir\foodir\more')
>>> print(p)
\dir\anotherdir\foodir\more
>>> print(p.as_posix())
/dir/anotherdir/foodir/more
>>> str(p)
'\\dir\\anotherdir\\foodir\\more'
>>> str(p.as_posix())
'/dir/anotherdir/foodir/more'