繁体   English   中英

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

[英]Replace Backslashes with Forward Slashes in Python

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

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

\dir\anotherdir\foodir\more

更改为:

/dir/anotherdir\x0oodir/more

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

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

这不行:

    >>> s = 'a\\b'
    >>> s
    'a\\b'
    >>> print s
    a\b
    >>> s.replace('\\','/')
    'a/b'

编辑:

当然这是一个基于字符串的解决方案,如果你正在处理文件系统路径,使用os.path是更明智的。

通过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'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM