在Python中将反斜杠替换为正斜杠
我正在用Python写一个跨平台的文件浏览器。我想把路径中的反斜杠转换成正斜杠,这样就可以用统一的格式处理所有路径。
我尝试过不仅仅是用string.replace(str, '\\', '/'),还手动创建了一个方法来查找字符串中的反斜杠并替换,但这两种方法都没有正常工作,比如一个路径名是:
\dir\anotherdir\foodir\more
变成了:
/dir/anotherdir\x0oodir/more
我猜这可能跟Python如何表示转义字符有关。那我该怎么防止这种情况发生呢?
3 个回答
13
这个代码不是可以这样用吗:
>>> s = 'a\\b'
>>> s
'a\\b'
>>> print s
a\b
>>> s.replace('\\','/')
'a/b'
?
补充说明:
当然,这个方法是基于字符串的,如果你在处理文件系统的路径,使用 os.path 会更明智。
32
进一步解释这个答案,使用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'