在某些情况下,目录路径将被终止用"/"字符表示路径问题是一个目录,而不是一个文件。
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 试图找到它的目录组成。对于文件,确定这意味着它所在的目录,但对于目录,返回目录本身对我来说似乎是合乎逻辑的。