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

zhi*_*ang 54 python operating-system

它们是相同的,但我应该使用哪一个?

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

os.sep

操作系统用于分隔路径名组件的字符.这是POSIX的'/'和Windows的'\'.请注意,知道这不足以解析或连接路径名 - 使用os.path.split()和os.path.join() - 但它偶尔会有用.也可以通过os.path获得.

Dav*_*ver 70

我用os.path.sep它来说明它是路径分隔符......但是一致性更重要,所以如果已经使用了它,那就使用它.否则,选择一个并一直使用它.

编辑:只是为了确保你不重新发明轮子,不过,该path模块已经具备join,split,dirname,和basename功能......所以,你应该很少需要使用path.sep:

>>> os.path.join("foo", "bar", "baz")
'foo/bar/baz'
>>> os.path.split(_)
('foo/bar', 'baz')
Run Code Online (Sandbox Code Playgroud)

  • 似乎doc只记录了os.sep,似乎有更多地方使用os.sep而不是os.path.sep.我同意你的看法,os.path.sep更清楚.从原始设计师的角度来看,我们不知道有什么考虑吗? (2认同)

Fre*_*Foo 9

我建议您使用os.path.sep清晰度,因为它是路径分隔符,而不是OS分隔符.如果你import os.path as path可以打电话,那就path.sep更好了.


小智 9

如果您正在使用Jython 2.7,我建议使用os.sep(工作)而不是os.path.sep(损坏),因为Windows上的Jython有一个错误,返回"/"斜杠而不是所需的"\"反斜杠.