konstruowanie ścieżki bezwzględnej z os.path.join ()

Chciałbym zbudować ścieżkę absolutną w Pythonie, jednocześnie nie zwracając uwagi na takie rzeczy jak separator ścieżek.

edytuj0: na przykład w katalogu głównym mojego systemu plików znajduje się katalog/etc/init.d (lubC:\etc\init.d na w32) i chcę to skonstruować tylko z elementówetc iinit.d (na w32 prawdopodobnie potrzebuję także identyfikatora dyskuC:)

Aby nie martwić się o separatory ścieżek,os.join.path() jest oczywiście narzędziem wyboru. Ale wydaje się, że to tylko się stworzykrewny ścieżki:

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

Dodawanie fikcyjnego pierwszego elementu (np.'') nic nie pomaga:

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

Uczynienie pierwszego elementu absolutnym oczywiście pomaga, ale ten rodzaj pokonuje ideę używaniaos.path.join()

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

edytuj1: za pomocąos.path.abspath() spróbuje tylko przekonwertować ścieżkę względną na ścieżkę bezwzględną. na przykład Rozważ uruchomienie następującego w katalogu roboczym/home/foo:

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

Jaka jest standardowa metoda „rootowania” ścieżki?

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

edytuj2: pytanie naprawdę sprowadza się do: odkąd wiodący slash w/etc/init.d sprawia, że ​​ta ścieżka jest ścieżką absolutną, czy istnieje sposób na programowe ukształtowanie tego wiodącego ukośnika? (Nie chcę zakładać, że wiodący ukośnik wskazuje bezwzględną ścieżkę)

questionAnswers(5)

yourAnswerToTheQuestion