Почему у python есть os.path.curdir
os.path.curdir
возвращает '.' который абсолютно правдивый и совершенно бесполезный. Чтобы получить от него что-нибудь полезное, вы должны обернуть его os.path.abspath(os.path.curdir)
Зачем включать бесполезную переменную в модуль os.path? Почему бы не os.path.curdir быть функцией, которая делает путь os.path.abs для вас?
Есть ли какая-то историческая причина существования os.path.curdir
?
Может быть, бесполезно немного грубо, но не очень полезно кажется слабым, чтобы описать это.
![введите описание изображения здесь]()
Ответы
Ответ 1
Это константа, как и os.path.sep
.
Платформы, отличные от POSIX и Windows, могут использовать другое значение для обозначения текущего каталога. На Risc OS это @
например, на старой Macintosh OS это :
.
Значение используется во всей стандартной библиотеке, чтобы оставаться агностиком платформы.
Используйте os.getcwd()
; os.path.abspath()
использует эту функцию под капотом, чтобы превратить os.path.curdir
в текущий рабочий каталог. Вот реализация POSIX abspath()
:
def abspath(path):
"""Return an absolute path."""
if not isabs(path):
if isinstance(path, _unicode):
cwd = os.getcwdu()
else:
cwd = os.getcwd()
path = join(cwd, path)
return normpath(path)
Ответ 2
Это просто постоянное, зависящее от платформы значение. Из документов (которые стоит прочитать):
Постоянная строка, используемая операционной системой для обращения к текущему каталогу. Это '.'
для Windows и POSIX. Также доступен через os.path
.
Вместо этого вы можете использовать os.getcwd()
.
Ответ 3
Значение os.path.curdir
равно "."
для Linux, Windows и OS X. Однако это означает ":"
для старых систем Mac OS 9. Python был достаточно долго, чтобы это было важно.