Jak mogę dodać końcowy ukośnik ( /dla * nix, \dla win32) do ciągu katalogu, jeśli ukośnik kończący już tam nie jest? Dzięki!
os.path.joini pozwól bibliotece standardowej znaleźć właściwy separator ścieżki.
Jak mogę dodać końcowy ukośnik ( /dla * nix, \dla win32) do ciągu katalogu, jeśli ukośnik kończący już tam nie jest? Dzięki!
os.path.joini 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.
pathjest to plik, a nie katalog. To trochę niewygodne.
Ponieważ chcesz połączyć katalog i nazwę pliku, użyj
os.path.join(directory, filename)
Jeśli chcesz pozbyć się .\..\..\blah\ścieżek, użyj
os.path.join(os.path.normpath(directory), filename)
Możesz to zrobić ręcznie:
path = ...
import os
if not path.endswith(os.path.sep):
path += os.path.sep
Jednak zwykle jest znacznie czystszy w użyciu os.path.join.
Możesz użyć czegoś takiego:
os.path.normcase(path)
Normalize the case of a pathname. On Unix and Mac OS X, this returns the path unchanged; on case-insensitive filesystems, it converts the path to lowercase. On Windows, it also converts forward slashes to backward slashes.
W przeciwnym razie możesz poszukać czegoś innego na tej stronie
os.pathmodułu ( docs.python.org/library/os.path.html ) zamiast bezpośrednio manipulować napisami . Służyos.path.joindo łączenia składników ścieżki.