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?
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?
Odpowiedzi:
Obie funkcje używają tej os.path.split(path)funkcji do podziału ścieżki pathna 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
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
path = '/home/User/Desktop/myfile.py'
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 masz myfile.py), os.path.dirname(path)zwraca pusty ciąg.
itemsięitem/, który jest katalogiem, a następnieos.path.split('foo/bar/item/')powraca('foo/bar/item', '').