Который я должен использовать: os.sep или os.path.sep?

Они такие же, но какой я должен использовать?

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

os.sep

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

Ответ 1

Я бы использовал 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')

Ответ 2

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

Ответ 3

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