Jaka jest różnica między os.path.basename()
i os.path.dirname()
?
Szukałem już odpowiedzi i przeczytałem kilka linków, ale nie rozumiałem. Czy ktoś może podać proste wyjaśnienie?
Obie funkcje używają tej os.path.split(path)
funkcji do podziału ścieżki path
na parę; (head, tail)
.
os.path.dirname(path)
Zwraca głowę ścieżki.
Np .: '/foo/bar/item'
nazwa katalogu to '/foo/bar'
.
os.path.basename(path)
Zwraca ogon ścieżki.
Np .: nazwa podstawowa '/foo/bar/item'
zwrotów'item'
Od: http://docs.python.org/2/library/os.path.html#os.path.basename
item
sięitem/
, który jest katalogiem, a następnieos.path.split('foo/bar/item/')
powraca('foo/bar/item', '')
.os.path.basename(os.path.dirname(path))
'foo.bar'
i Wywołanie os.path.dirname (nazwa_pliku) zwraca pusty ciąg:''
.Podsumowując to, o czym Breno wspomniał powyżej
Powiedzmy, że masz zmienną ze ścieżką do pliku
os.path.basename(path)
zwraca ciąg'myfile.py'
i
os.path.dirname(path)
zwraca ciąg'/home/User/Desktop'
(bez końcowego ukośnika „/”)Te funkcje są używane, gdy musisz uzyskać nazwę pliku / katalogu z pełną nazwą ścieżki.
W przypadku, gdy ścieżka do pliku to tylko nazwa pliku (np. Zamiast
path = '/home/User/Desktop/myfile.py'
po prostu maszmyfile.py
),os.path.dirname(path)
zwraca pusty ciąg.źródło