在Python中用反斜杠替换反斜杠

时间:2010-11-07 18:59:14

标签: python

我正在python中编写跨平台文件资源管理器。我试图将路径中的任何反斜杠转换为正斜杠,以便以一种格式处理所有路径。

我不仅尝试使用string.replace(str,'\\','/'),还尝试手动创建方法来搜索字符串并替换实例,两者都无法正常工作,路径名称,例如:

\dir\anotherdir\foodir\more

更改为:

/dir/anotherdir\x0oodir/more

我假设这与Python如何表示转义字符或类似的东西有关。我该如何防止这种情况发生?

3 个答案:

答案 0 :(得分:11)

你应该使用os.path这类东西。在Python 3中,您还可以使用pathlib以可移植的方式表示路径,因此您不必再担心斜杠等问题。

答案 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'