Подтвердить что ты не робот

Почему у python есть os.path.curdir

os.path.curdir возвращает '.' который абсолютно правдивый и совершенно бесполезный. Чтобы получить от него что-нибудь полезное, вы должны обернуть его os.path.abspath(os.path.curdir)

Зачем включать бесполезную переменную в модуль os.path? Почему бы не os.path.curdir быть функцией, которая делает путь os.path.abs для вас?

Есть ли какая-то историческая причина существования os.path.curdir?

Может быть, бесполезно немного грубо, но не очень полезно кажется слабым, чтобы описать это. введите описание изображения здесь

4b9b3361

Ответ 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 был достаточно долго, чтобы это было важно.