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

时间:2011-08-01 15:13:31

标签: python operating-system

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

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

  

os.sep

     
    

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

获得   

4 个答案:

答案 0 :(得分:67)

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

修改:为了确保您不重新发明轮子,path模块已经joinsplit,{{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的情况下使用。