Jaki jest najlepszy sposób reprezentowania katalogu Windows, na przykład "C: \ siatki \ jak"? Próbowałem zmodyfikować skrypt, ale nigdy nie działa, ponieważ nie mogę poprawnie odczytać katalogu, zakładam, że "\" działa jako znak ucieczki?Ścieżka Windows w pytonie
Odpowiedz
można używać zawsze:
'C:/mydir'
Działa to zarówno w Linux i Windows. Inne posibility jest
'C:\\mydir'
jeśli masz problemy z niektórymi nazwami można także spróbować surowe ciągi:
r'C:\mydir'
jednak najlepszym rozwiązaniem jest korzystanie z funkcji modułu os.path
że zawsze wybrać poprawną konfigurację dla OS:
os.path.join(mydir, myfile)
Użyj modułu os.path
.
os.path.join("C:", "meshes", "as")
lub użyj surowe ciągi
r"C:\meshes\as"
os.path.join nie może zachowywać się jak można się spodziewać, gdy składnik jest literą dysku, ponieważ ścieżki względne są dozwolone nawet th en. (Wynik pierwszego wiersza to "C: mesh \\ as" w Windows.) –
@ komentarz dash-tom-bang jest naprawdę ważny. Czy jest to właściwe, aby umieścić "C: \" "jako pierwszy wpis? Czy to marnuje trochę czystości używania 'join'? –
@ JackO'Connor to właśnie robię. Na pewno nie chcesz wstawiać "C: \" w środku nazwy pliku. Poza tym możesz użyć 'os.path.normpath' przed lub po złączeniu, aby upewnić się, że ścieżka zostanie ładnie wydrukowana. – Agostino
Dzięki chłopaki, "/" działało dobrze, ale inne wskazówki są doceniane. – Gareth
@Gareth, jestem bardzo leniwy i często znalazłem się za pomocą "/". Jednak na dłuższą metę korzystanie z os.path jest wygodniejsze. Pozwala także na używanie mydir i myfile jako zmiennych, które można łatwo modyfikować. – joaquin
Jedyną rzeczą, na którą należy uważać na surowych ciągach, jest to, że nie mogą kończyć się \ –