Python os.path.dirname( "path" ) bug - 当路径被 "/" 终止时不返回父目录



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

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]

这个函数的行为方式有

没有原因,或者这是一个实际的错误? 如果这是一个错误,我该如何提交它还是有人可以提交这个?

实际上

os.path.dirname根本不应该返回父目录名称。来自 python 文档:

os.path.dirname(path(

返回路径名

路径的目录名。这 是通过将路径传递给 函数拆分((。

或者你可以只使用内置的帮助功能:

>>> import os
>>> help(os.path.dirname)
Help on function dirname in module ntpath:
dirname(p)
    Returns the directory component of a pathname

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

最新更新