2009-09-30 17 views
134

Gdy wiele katalogów musi być połączonych, tak jak w ścieżce wyszukiwania wykonywalnego, istnieje znak separatora zależny od os. Dla Windows jest to ';', dla Linuksa jest to ':'. Czy jest jakiś sposób w Pythonie, aby dowiedzieć się, którą postać podzielić?Jak uzyskać separator zmiennej środowiskowej PATH w języku Python?

W dyskusjach na to pytanie How do I find out my python path using python?, zasugerowano, że zrobi to os.sep. Odpowiedź jest błędna, ponieważ jest separatorem dla składników katalogu lub nazwy pliku i jest równa '\\' lub '/'.

Odpowiedz

197
+203

Jeśli, tak jak ja, nie czytać ciało to pytanie i poszedł po tytule, pomyślisz, że jest to postać, która oddziela elementy ** ścieżki systemu plików ** (ukośnik w systemie Linux i MacOSX, ukośnik w systemie Windows). Nie jest, to znak, który oddziela elementy powłoki ** PATH **, która jest używana do lokalizowania poleceń wykonywalnych. 'os.sep' lub' os.path.sep' jest tym, czego potrzebujesz dla ścieżek systemu plików. – Perry

+63

'os.pathsep' to': 'lub'; 'podczas gdy' os.path.sep' to '\\' lub '/' - czasami nazwy w Pythonie wydają mi się szokująco słabo wybrane. To '.' robi zbyt dużą różnicę. – ArtOfWarfare

+0

Czy to jest najkrótsza odpowiedź na SO? Ponad 100 głosów na 10 znaków !! Okay, wiem, że to 66. –

30

Jest os.pathsep

+8

Co za różnica dziewięć sekund :-) – paxdiablo

10

Making to trochę bardziej wyraźne (Dla początkujących Pythona jak ja)

import os 
print(os.pathsep) 
Powiązane problemy