它们是相同的,但我应该使用哪一个?
http://docs.python.org/library/os.html:
os.sep
操作系统用于分隔路径名组件的字符。这是POSIX的'/'和Windows的'\'。请注意,知道这不足以解析或连接路径名 - 使用os.path.split()和os.path.join() - 但它偶尔会有用。也可以通过os.path。
获得
答案 0 :(得分:67)
我使用os.path.sep
非常清楚它是路径分隔符......但是一致性更重要,所以如果已经使用了它,那就使用它。否则,选择一个并一直使用它。
修改:为了确保您不重新发明轮子,path
模块已经join
,split
,{{1 }}和dirname
函数......所以你应该很少需要使用basename
:
path.sep
答案 1 :(得分:9)
为了清晰起见,我建议您使用os.path.sep
,因为它是路径分隔符,而不是操作系统分隔符。如果您import os.path as path
,可以将其称为path.sep
,这样会更好。
答案 2 :(得分:9)
如果您使用的是Jython 2.7,我建议使用os.sep
(有效)而不是os.path.sep
(已损坏),因为Windows上的Jython有一个错误,返回"/"
斜杠而不是必需的"\"
反斜杠。
答案 3 :(得分:0)
以下示例可能会突出显示os.path.join和os.path.sep.join之间的区别。
导入操作系统 os.path.join(“输出”,“图像”,“保存”) '输出/图像/保存' os.path.sep.join([[“输出”,“图像”,“保存”]) '输出/图像/保存'
我猜想os.path.sep.join更加健壮,并且可以在不修改任何os的情况下使用。