我在python中工作,我需要转换它:
C:\ folderA \ folderB到C:/ folderA / folderB
我有三种方法:
dir = s.replace('\\','/')
dir = os.path.normpath(s)
dir = os.path.normcase(s)
在每种情况下,输出都是
C:folderAfolderB
我不确定我做错了什么,有什么建议吗?
答案 0 :(得分:25)
您的具体问题是replace
参数的顺序和转义,应为
s.replace('\\', '/')
然后是:
posixpath.join(*s.split('\\'))
在* nix平台上相当于:
os.path.join(*s.split('\\'))
但是不要在Windows上依赖它,因为它更喜欢特定于平台的分隔符。也:
请注意,在Windows上,因为每个目录都有一个当前目录 drive,os.path.join(“c:”,“foo”)表示相对于的路径 驱动器C上的当前目录:(c:foo),而不是c:\ foo。
答案 1 :(得分:13)
我最近发现了这个并且认为值得分享:
import os
path = "C:\\temp\myFolder\example\\"
newPath = path.replace(os.sep, '/')
print newPath
Output:<< C:/temp/myFolder/example/ >>
答案 2 :(得分:7)
尝试
path = '/'.join(path.split('\\'))
答案 3 :(得分:2)
在Windows中,路径名的格式不同。该解决方案很简单,假设您具有如下所示的路径字符串:
data_file = "/Users/username/Downloads/PMLSdata/series.csv"
只需将其更改为此:(在路径的前面添加r)
data_file = r"/Users/username/Downloads/PMLSdata/series.csv"
字符串前的修饰符r告诉Python这是一个原始字符串。在原始字符串中,反斜杠是按字面意义解释的,而不是转义符。
答案 4 :(得分:0)
怎么样:
import ntpath
import posixpath
.
.
.
dir = posixpath.join(*ntpath.split(s))
.
.
答案 5 :(得分:0)
要定义路径的变量,您最初必须添加r
,然后在末尾添加替换语句.replace('\\', '/')
。
例如:
In>> path2 = r'C:\Users\User\Documents\Project\Em2Lph\'.replace('\\', '/')
In>> path2
Out>> 'C:/Users/User/Documents/Project/Em2Lph/'
此解决方案不需要额外的库
答案 6 :(得分:0)
很抱歉迟到了,但我想知道没有人建议使用 pathlib-library。
pathlib 是“面向对象的文件系统路径”的模块
要将 Windows 样式(反斜杠)路径转换为正斜杠(通常用于 Posix 路径),您可以使用 pathlib 以非常冗长(与平台无关)的方式执行此操作:
import pathlib
pathlib.PureWindowsPath(r"C:\folderA\folderB").as_posix()
>>> 'C:/folderA/folderB'
请注意,该示例使用字符串字面量“r”(以避免将“\”用作转义字符) 在其他情况下,路径应该正确引用(使用双反斜杠)“C:\\folderA\\folderB”