какой из них я должен использовать: os.sep или os.path.sep? - PullRequest
52 голосов
/ 01 августа 2011

Они одинаковые, но какой мне следует использовать?

http://docs.python.org/library/os.html:

os.sep

Символ, используемый операционной системой для разделения компонентов имени пути. Это '/' для POSIX и '\' для Windows. Обратите внимание, что знания этого недостаточно для анализа или объединения имен путей - используйте os.path.split () и os.path.join () - но иногда это полезно. Также доступно через os.path.

Ответы [ 3 ]

69 голосов
/ 01 августа 2011

Я бы использовал os.path.sep, чтобы было очень ясно, что это разделитель пути ... Но согласованность важнее, поэтому, если она уже используется, используйте это. В противном случае выберите один и используйте его все время.

Редактировать : Просто чтобы убедиться, что вы не изобретаете велосипед заново, модуль path уже имеет функции join, split, dirname и basename ... Поэтому вам редко нужно использовать path.sep:

>>> os.path.join("foo", "bar", "baz")
'foo/bar/baz'
>>> os.path.split(_)
('foo/bar', 'baz')
9 голосов
/ 16 июня 2016

Если вы используете Jython 2.7, я предлагаю использовать os.sep (работает) вместо os.path.sep (не работает), поскольку в Jython в Windows есть ошибка, возвращающая косую черту "/" вместо требуемой обратной косой черты "\".

9 голосов
/ 01 августа 2011

Я рекомендую вам использовать os.path.sep для ясности, так как это разделитель пути, а не разделитель ОС. Если вы import os.path as path, вы можете назвать это path.sep, что еще лучше.

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