os.path.dirname()有什么作用?

时间:2019-12-10 08:52:22

标签: python

我正在查看一些Flask代码,但我一直在努力了解dirname的工作方式。 例如

>>> os.path.abspath('./')

返回

'/home/mm'

符合预期。

>>> dirname('./')
'.'

dirname为什么不提供相同的输出?

1 个答案:

答案 0 :(得分:2)

这是the doc关于os.path.dirname的内容:

  

返回路径名path的目录名。这是通过将路径传递给函数split()返回的一对中的第一个元素。

因此它返回传递路径的目录名称。 即os.path.dirname("/a/b/c")返回"/a/b"

此功能由os.path.basename补充,它返回文件的名称。要继续同一示例,os.path.basename("/a/b/c")将返回"c"


另一方面,os.path.abspath完全不同,如the doc再次说明:

  

返回路径名路径的标准化绝对化版本。在大多数平台上,这等效于按如下方式调用函数normpath():normpath(join(os.getcwd(),path))。

因此os.path.abspath("./a/b/c")将返回"./a/b/c"的绝对版本,即相对于文件系统根目录的绝对版本。 如果您位于homedir中,它将给您"/home/username/a/b/c"