python 2.7中的os.path.join有什么作用?

时间:2019-01-01 12:10:53

标签: python python-2.7 os.path

我有以下我认为不正确的代码行:

path_dir = os.path.abspath(os.path.join(os.path.dirname(__file__)))

os.path.dirname(__file__)在其中查找脚本。

我知道os.path.abspath()为您提供了文件或目录的绝对路径,但是os.path.join()将两个字符串组合在一起,但为此我们需要两个路径。即path_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), os.path.pardir)))

我是否认为上述代码不正确且已损坏?

2 个答案:

答案 0 :(得分:2)

os.path.join()调用完全是多余的,可以安全地删除。您在这里不需要它。但是,这不是技术上的错误或损坏

os.path.join()接受任意数量的参数(至少1个)连接在一起,因此,从技术上讲,它只允许传递os.path.dirname(__file__)的结果,{ {1}}只能返回该单个输入。

这可能是代码重构或半理解的复制粘贴操作的产物,此后已删除了更多参数。

os.path.join()在使用os.path.join()语法传递其他路径的情况下接受单个参数,但是这些附加路径根据运行时条件为空:

*args

答案 1 :(得分:0)

  

os.path.join(路径,*路径)   连接一个或多个路径组件   聪明地返回值是path和任何其他对象的串联   *路径的成员,其中只有一个目录分隔符(os.sep)   在每个非空部分之后(最后一个除外),表示结果   如果最后一部分为空,则只会以分隔符结尾。如果一个组件   是绝对路径,所有先前的组件都被丢弃,   连接将从绝对路径组件继续。

Python 2.7 documentation