Ошибка Python os.path.dirname ("path") - не возвращает родительский каталог, когда путь заканчивается символом "/" - PullRequest
0 голосов
/ 06 февраля 2019

В некоторых случаях путь к каталогу будет оканчиваться символом "/" для обозначения того, что рассматриваемый путь является каталогом, а не файлом.

Предполагается, что функция 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 голосов
/ 06 февраля 2019

На самом деле, os.path.dirname вообще не должен возвращать имя родительского каталога.Из документов Python :

os.path.dirname (путь)

Возвращает имя каталога пути pathname.Это первый элемент пары, возвращаемый путем передачи пути к функции split ().

Или вы можете просто использовать встроенную функцию справки:

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

dirname(p)
    Returns the directory component of a pathname

В основномпохоже на заданный путь, dirname пытается найти его каталоги.Для файла, конечно, это означает каталог, в котором он находится, но для каталога мне кажется логичным вернуть сам каталог.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...