Python использовать литерал / против os.path.sep - PullRequest
0 голосов
/ 12 мая 2018

Я добросовестно использовал os.path.sep вместо литерала '/'.Поэтому я с удивлением посмотрел на источник os.path.join сегодня и увидел его с использованием литерала.

Я понял, что на платформах Windows некоторые библиотечные подпрограммы более низкого уровня преобразуют '/' в '\' при вызове файловой системы или другого '/' с использованием функций ОС.

Безопасно ли простоиспользовать литерал, не ставя под угрозу переносимость в Windows?

def join(a, *p):
    path = a
    for b in p:
        if b.startswith('/'):
            path = b
        elif path == '' or path.endswith('/'):
            path +=  b
        else:
            path += '/' + b
    return path

1 Ответ

0 голосов
/ 13 мая 2018

Python имеет разные источники для разных ОС. Вы можете посмотреть файлы macpath.py, ntpath.py и posixpath.py, реализующие функцию соединения для соответствующих платформ. Каждый из файлов определяет переменную sep для обозначения символа разделения для соответствующей платформы. Я бы сказал, что безопасно использовать os.path.sep, иначе код станет несовместимым с другими ОС.

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