我们知道,windows同时接受"\"
和"/"
作为分隔符。
但在python中,使用"\"
。例如,调用os.path.join("foo","bar")
,将返回'foo\\bar'
。令人恼火的是有一个转义字符,所以不能只复制路径字符串并粘贴到资源管理器的位置栏。
我想知道有没有办法让python使用"/"
作为默认分隔符,我已经尝试将os.path.sep和os.sep的值更改为"/"
,但是os.path.join
仍然使用"\\"
。
什么是正确的方法?
附言:
我只是不明白为什么python在windows上使用“\”作为默认分隔符,也许旧版本的windows不支持“/”?
为什么不定义自定义显示函数?
例如
如果你想用
str.join
代替os.path.join
,你可以这样做(str.join
需要一个列表,os.path.join
需要*args
):最好是让Python规范化所有内容,然后替换,例如:
当文件路径中有空格时,上面的问题可能只出现在posix上。
然后,可以在utils文件的顶部放置一个
if
语句,并将display_path
和join
分别定义为no op和os.path.join(如果不在Windows上)。这完全是关于Python如何检测您的操作系统:
因此,在Windows上加载
ntpath
模块。如果您检查ntpath.py
和posixpath.py
模块,您会注意到ntpath.join()
有点复杂,这也是您提到的原因:Windows将/
理解为路径分隔符。底线:虽然可以在Windows中使用
posixpath.join()
(只要参数是POSIX
格式),但我不建议这样做。要尽可能简单地回答您的问题,只需使用posixpath而不是os.path。
所以不是:
使用:
相关问题 更多 >
编程相关推荐