哪一个我应该使用:os.sep或os.path.sep?

他们是一样的,但我应该使用哪一个?

http://docs.python.org/library/os.html :

os.sep

操作系统用来分隔path名组件的字符。 这是POSIX的“/”和Windows的“\”。 请注意,知道这不足以parsing或连接path名 – 使用os.path.split()和os.path.join() – 但它有时是有用的。 也可以通过os.path获得。

我会使用os.path.sep来清楚地说明它是path分隔符…但是一致性更重要,所以如果已经使用了,那就使用它。 否则,select一个,并一直使用它。

编辑 :只是为了确保你没有重新发明轮子, path模块已经有了joinsplitdirnamebasename函数…所以你应该很less需要使用path.sep

 >>> os.path.join("foo", "bar", "baz") 'foo/bar/baz' >>> os.path.split(_) ('foo/bar', 'baz') 

为了清晰起见,我build议你使用os.path.sep ,因为它是一个path分隔符,而不是操作系统的分隔符。 如果你把import os.path as path你可以把它称为path.sep ,这更好。

如果您使用的是Jython 2.7,我build议使用os.sep(works)而不是os.path.sep(broken),因为Windows上的Jython有一个返回“/”斜杠而不是所需的“\”反斜杠的错误。