¿Cuál debería usar: os.sep o os.path.sep?

Son iguales, pero ¿cuál debo usar?

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

os.sep

El carácter utilizado por el sistema operativo para separar los componentes de las rutas de acceso. Esto es ‘/’ para POSIX y ‘\’ para Windows. Tenga en cuenta que saber esto no es suficiente para poder analizar o concatenar rutas de acceso (use os.path.split () y os.path.join ()), pero en ocasiones es útil. También disponible a través de os.path.

os.path.sep para dejar en claro que es el separador de ruta … Pero la consistencia es más importante, por lo que si ya se está utilizando uno, use eso. De lo contrario, elige uno y úsalo todo el tiempo.

Edición : Sin embargo, solo para asegurarse de que no está reinventando la rueda, el módulo de path ya tiene funciones de join , split , nombre de dirname y basename … Por lo tanto, rara vez debe usar la path.sep :

 >>> os.path.join("foo", "bar", "baz") 'foo/bar/baz' >>> os.path.split(_) ('foo/bar', 'baz') 

Le recomiendo usar os.path.sep para mayor claridad, ya que es un separador de ruta, no un separador de sistema operativo. Si import os.path as path , puede llamarlo path.sep , que es aún mejor.

Si está utilizando Jython 2.7, sugiero usar os.sep (funciona) en lugar de os.path.sep (roto), ya que Jython en Windows tiene un error que devuelve una barra "/" lugar de la barra diagonal "\" .