Python的os.path.dirname(“路径”)的错误 - 当路的终止不会返回上级目录“/”

问题描述 投票:0回答:1

在某些情况下,目录路径将与“/”字符结尾表示有问题的路径是一个目录,而不是一个文件。

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]

是否有一个原因,这个函数的作用它的方式,或者这是一个实际的错误吗?如果这是一个错误,我如何,或可有人文件呢?

python operating-system os.path dirname
1个回答
0
投票

事实上,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

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

© www.soinside.com 2019 - 2024. All rights reserved.