我在python中工作,我需要转换它:
C:\ folderA\folderB到C:/ folderA/folderB
我有三种方法:
dir = s.replace('\\','/')
dir = os.path.normpath(s)
dir = os.path.normcase(s)
Run Code Online (Sandbox Code Playgroud)
在每种情况下,输出都是
C:folderAfolderB
我不确定我做错了什么,有什么建议吗?
Jas*_*n S 27
你的具体问题是你的replace论点的顺序和逃避,应该是
s.replace('\\', '/')
Run Code Online (Sandbox Code Playgroud)
然后是:
posixpath.join(*s.split('\\'))
Run Code Online (Sandbox Code Playgroud)
在*nix平台上相当于:
os.path.join(*s.split('\\'))
Run Code Online (Sandbox Code Playgroud)
但是不要依赖于Windows,因为它更喜欢特定于平台的分隔符.也:
请注意,在Windows上,由于每个驱动器都有一个当前目录,os.path.join("c:","foo")表示相对于驱动器C上当前目录的路径:(c:foo),而不是c :\ FOO.
小智 17
我最近发现这个,并认为值得分享:
import os
path = "C:\\temp\myFolder\example\\"
newPath = path.replace(os.sep, '/')
print newPath
Output:<< C:/temp/myFolder/example/ >>
Run Code Online (Sandbox Code Playgroud)
尝试
path = '/'.join(path.split('\\'))
Run Code Online (Sandbox Code Playgroud)
很抱歉参加聚会迟到了,但我想知道没有人建议使用 pathlib-library。
pathlib是“面向对象的文件系统路径”的模块
要从 Windows 样式(反斜杠)路径转换为正斜杠(通常用于 Posix 路径),您可以使用 pathlib 以非常详细(且与平台无关)的方式进行转换:
import pathlib
pathlib.PureWindowsPath(r"C:\folderA\folderB").as_posix()
>>> 'C:/folderA/folderB'
Run Code Online (Sandbox Code Playgroud)
请注意,该示例使用字符串文字“r”(以避免将“\”作为转义字符)在其他情况下,应正确引用路径(使用双反斜杠)“C:\\folderA\\folderB”
小智 5
路径名在 Windows 中的格式不同。解决方案很简单,假设你有一个这样的路径字符串:
data_file = "/Users/username/Downloads/PMLSdata/series.csv"
Run Code Online (Sandbox Code Playgroud)
只需将其更改为:(在路径前添加 r )
data_file = r"/Users/username/Downloads/PMLSdata/series.csv"
Run Code Online (Sandbox Code Playgroud)
字符串前的修饰符 r 告诉 Python 这是一个原始字符串。在原始字符串中,反斜杠按字面解释,而不是转义字符。