Absoluten Pfad mit os.path.join () konstruieren

Ich möchte einen absoluten Pfad in Python konstruieren und dabei Dinge wie Pfadtrennzeichen nicht beachten.

edit0: Zum Beispiel gibt es ein Verzeichnis im Stammverzeichnis meines Dateisystems/etc/init.d (oderC:\etc\init.d auf w32), und ich möchte dies nur aus den Elementen konstruierenetc undinit.d (auf w32 brauche ich wahrscheinlich auch eine disk-id, wieC:)

Um sich keine Gedanken über Pfadtrenner machen zu müssen,os.join.path() ist offensichtlich das Werkzeug der Wahl. Aber es scheint, dass dies immer nur schaffen wirdrelativ Pfade:

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

Hinzufügen eines Dummy-ersten Elements (z.'') hilft nichts:

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

Es ist offensichtlich hilfreich, das erste Element absolut zu machen, aber diese Art der Überwindung der Idee der Verwendungos.path.join()

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

edit1: mitos.path.abspath() wird nur versuchen, einen relativen Pfad in einen absoluten Pfad umzuwandeln. z.B. Erwägen Sie, Folgendes im Arbeitsverzeichnis auszuführen/home/foo:

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

Was ist die plattformübergreifende Standardmethode, um einen Pfad zu "rooten"?

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

edit2: die frage dreht sich wirklich um: seit dem führenden schrägstrich/etc/init.d macht diesen Pfad zu einem absoluten Pfad. Gibt es eine Möglichkeit, diesen führenden Schrägstrich programmgesteuert zu konstruieren? (Ich möchte nicht davon ausgehen, dass ein führender Schrägstrich einen absoluten Pfad angibt.)

Antworten auf die Frage(5)

Ihre Antwort auf die Frage