construyendo ruta absoluta con os.path.join ()

Me gustaría construir un camino absoluto en Python, mientras que al mismo tiempo me mantengo bastante inconsciente de cosas como el separador de caminos.

edit0: por ejemplo, hay un directorio en la raíz de mi sistema de archivos/etc/init.d (oC:\etc\init.d en w32), y quiero construir esto solo a partir de los elementosetc yinit.d (en w32, probablemente también necesito una ID de disco, comoC:)

Para no tener que preocuparse por los separadores de caminos,os.join.path() Obviamente es la herramienta de elección. Pero parece que esto solo va a crearrelativo caminos:

 print "MYPATH:", os.path.join('etc', 'init.d')
 MYPATH: etc/init.d

Adición de un primer elemento ficticio (por ejemplo,'') no ayuda en nada:

 print "MYPATH:", os.path.join('', 'etc', 'init.d')
 MYPATH: etc/init.d

Hacer que el primer elemento sea absoluto, obviamente ayuda, pero este tipo de derrotas la idea de usaros.path.join()

 print "MYPATH:", os.path.join('/etc', 'init.d')
 MYPATH: /etc/init.d

edit1: utilizandoos.path.abspath() solo intentará convertir una ruta relativa en una ruta absoluta. p.ej. Considere ejecutar lo siguiente en el directorio de trabajo/home/foo:

 print "MYPATH:", os.path.abspath(os.path.join('etc', 'init.d'))
 MYPATH: /home/foo/etc/init.d

Entonces, ¿cuál es la forma estándar multiplataforma para "rootear" un camino?

 root = ??? # <--
 print "MYPATH:", os.path.join(root, 'etc', 'init.d')
 MYPATH: /etc/init.d

edit2: la pregunta realmente se reduce a: desde la barra inclinada principal/etc/init.d hace que esta ruta sea una ruta absoluta, ¿hay una manera de construir esta barra diagonal programática? (No quiero hacer suposiciones de que una barra diagonal indica una ruta absoluta)

Respuestas a la pregunta(5)

Su respuesta a la pregunta