在某些情况下,目录路径将与“/”字符结尾表示有问题的路径是一个目录,而不是一个文件。
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 docs:
os.path.dirname(路径)
返回路径路径的目录名。这是对通过传递路径功能split返回的第一个元素()。
或者,你可以使用内置的帮助功能:
>>> import os
>>> help(os.path.dirname)
Help on function dirname in module ntpath:
dirname(p)
Returns the directory component of a pathname
基本上,它看起来像给予路径,目录名试图找到它的目录组元。对于文件,确保意味着它所在的目录,但对于一个目录,它似乎是合乎逻辑我返回目录本身。