dziękuję Tim za przypomnienie, po przeczytaniu dokumentu myślę, że odpowiedź na moje prawdziwe pytanie to os.path.join (folder, nazwa pliku) i nie muszę się wcale martwić o ukośnik. stary, pokocham Pythona ;-)
ohho
2
Dlatego zapytałem - nie rób tego sam, użyj os.path.joini pozwól bibliotece standardowej znaleźć właściwy separator ścieżki.
Tim Pietzcker
2
@ S.Lott Nie uważam tego za „złe”. pytanie jest samo w sobie ważne. to tylko część większego (można powiedzieć prawdziwego) pytania.
ohho
6
Jednak w zależności od tego, co robisz, pytanie może nadal być interesujące. Na przykład, jeśli używasz Pythona do dostarczania danych wejściowych do innego programu, możesz mieć przypadek, w którym argument wymaga ścieżki zakończonej ukośnikiem. To może być poza twoją kontrolą; i jest doskonale uzasadnionym przypadkiem użycia poniższej odpowiedzi Marco.
Chris Krycho,
Odpowiedzi:
180
os.path.join(path, '') doda końcowy ukośnik, jeśli jeszcze go tam nie ma.
Możesz zrobić os.path.join(path, '', '')lub, os.path.join(path_with_a_trailing_slash, '')a nadal otrzymasz tylko jeden końcowy ukośnik.
os.path.normcase(path)Normalize the case of a pathname.OnUnixandMac OS X, this returns the path unchanged; on case-insensitive filesystems, it converts the path to lowercase.OnWindows, it also converts forward slashes to backward slashes.
W przeciwnym razie możesz poszukać czegoś innego na tej stronie
os.path
modułu ( docs.python.org/library/os.path.html ) zamiast bezpośrednio manipulować napisami . Służyos.path.join
do łączenia składników ścieżki.os.path.join
i pozwól bibliotece standardowej znaleźć właściwy separator ścieżki.Odpowiedzi:
os.path.join(path, '')
doda końcowy ukośnik, jeśli jeszcze go tam nie ma.Możesz zrobić
os.path.join(path, '', '')
lub,os.path.join(path_with_a_trailing_slash, '')
a nadal otrzymasz tylko jeden końcowy ukośnik.źródło
path
jest to plik, a nie katalog. To trochę niewygodne.Ponieważ chcesz połączyć katalog i nazwę pliku, użyj
Jeśli chcesz pozbyć się
.\..\..\blah\
ścieżek, użyjźródło
Możesz to zrobić ręcznie:
Jednak zwykle jest znacznie czystszy w użyciu
os.path.join
.źródło
Możesz użyć czegoś takiego:
W przeciwnym razie możesz poszukać czegoś innego na tej stronie
źródło