Который я должен использовать: 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 имеет ошибку, возвращающую "/" косую черту вместо требуемой "обратной" косой черты.