Python os.path.dirname(“ path”)错误-路径以“ /”终止时不返回父目录

时间:2019-02-06 04:51:46

标签: python operating-system os.path dirname

在某些情况下,目录路径将终止 用“ /”字符表示 问题是目录而不是文件。

os.path.dirname函数应该返回 父目录名称,但是当出现“ /”时 在路径字符串的末尾,目录本身 而不返回父目录。

示例:

>>> os.path.dirname("/a/b/c/d/e/f")
'/a/b/c/d/e'                       <----- correct

>>> os.path.dirname("/a/b/c/d/e/f/")
'/a/b/c/d/e/f'     <-----------------should be '/a/b/c/d/e'

似乎需要测试“ /”字符 像这样:

如果s [-1] ==“ /”:       s = s [:-1]

此功能的作用方式是否存在, 还是这是一个实际的错误?如果是错误,我该如何归档 还是有人可以归档?

1 个答案:

答案 0 :(得分:0)

实际上,os.path.dirname根本不返回父目录名称。来自python docs

  

os.path.dirname(path)

     

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

或者您也可以使用内置的帮助功能:

>>> import os
>>> help(os.path.dirname)
Help on function dirname in module ntpath:

dirname(p)
    Returns the directory component of a pathname

基本上看起来像是给定路径,dirname试图找到它的目录componenet。对于文件,请确保这意味着该文件所在的目录,但是对于目录,对我来说,返回目录本身似乎是合乎逻辑的。