Program w języku Python pobierający nazwę pliku ze ścieżki pliku
W tym artykule przyjrzymy się programowi, który pobierze nazwę pliku z podanej ścieżki pliku w języku programowania Python. Czasami podczas automatyzacji możemy potrzebować wyodrębnienia nazwy pliku ze ścieżki pliku.
Lepiej mieć wiedzę na temat:
- Moduł systemu operacyjnego Python
- Moduł ścieżki Pythona
- Wyrażenia regularne
- Wbudowany rsplit()
Metoda 1: Moduł systemu operacyjnego Python
Przykład 1: Pobierz nazwę pliku ze ścieżki bez rozszerzenia split()
Pythona podział() funkcja dzieli podany tekst na listę ciągów przy użyciu zdefiniowanego separatora i zwraca listę ciągów, które zostały podzielone podanym separatorem.
Python3
import> os> path> => 'D:homeRiot GamesVALORANTliveVALORANT.exe'> print> (os.path.basename(path).split(> '/'> )[> -> 1> ])> |
Wyjście:
VALORANT.exe
Przykład 2: Pobierz nazwę pliku ze ścieżki pliku za pomocą os.path.basename
Nazwę bazową w podanej ścieżce można uzyskać za pomocą wbudowanej w Pythona funkcji os.path.basename(). Funkcja path.basename() przyjmuje argument ścieżki i zwraca nazwę bazową ścieżki.
Python3
import> os> file_path> => 'C:/Users/test.txt'> # file path> # using basename function from os> # module to print file name> file_name> => os.path.basename(file_path)> print> (file_name)> |
Wyjście:
test.txt
Przykład 3: Uzyskaj nazwę pliku ze ścieżki pliku za pomocą os. podzielony tekst
Ta metoda zakończy się plikiem i będzie to rozszerzenie, ale co jeśli potrzebujemy tylko nazwy pliku bez rozszerzenia lub tylko rozszerzeń. Tutaj podzielony tekst pojawia się funkcja w module os. Ta metoda zwróci krotkę ciągów znaków zawierającą nazwę pliku i tekst, do których możemy uzyskać dostęp za pomocą indeksowania.
Przykład:
Python3
import> os> file_path> => 'C:/Users/test.txt'> file_name> => os.path.basename(file_path)> file> => os.path.splitext(file_name)> print> (> file> )> # returns tuple of string> print> (> file> [> 0> ]> +> file> [> 1> ])> |
Wyjście:
('test', '.txt') test.txt Metoda 2: Uzyskaj nazwę pliku ze ścieżki pliku za pomocą Pathlib
Pakiet Python Pathlib oferuje szereg klas opisujących ścieżki systemu plików z semantyką odpowiednią dla wielu systemów operacyjnych. Standardowe moduły narzędziowe dla Pythona zawierają ten moduł. Chociaż trzon to jeden z atrybutów narzędzia, który umożliwia wyodrębnienie nazwy pliku z linku bez rozszerzenia, jeśli chcemy rozszerzenia z plikiem, możemy użyć atrybutów nazw
Przykład:
Python3
from> pathlib> import> Path> file_path> => 'C:/Users/test.txt'> # stem attribute extracts the file> # name> print> (Path(file_path).stem)> # name attribute returns full name> # of the file> print> (Path(file_path).name)> |
Wyjście:
test test.txt
Metoda 3: Uzyskaj nazwę pliku ze ścieżki pliku za pomocą Wyrażenia regularne
Możemy użyć wyrażenia regularnego, aby dopasować nazwę pliku do określonego wzorca.
Pattern - [w]+?(?=.)
Ten wzór jest podzielony na 3 wzory
- [w] dopasowuje słowa znajdujące się w zestawie
- +? dopasowuje ciąg, jeśli był obecny tylko raz wcześniej ? słowo kluczowe
- (?=) dopasowuje wszystkie znaki bez nowej linii i pamiętaj, aby zatrzymać się na.
Przykład:
Python3
import> re> file_path> => 'C:/Users/test.txt'> pattern> => '[w-]+?(?=.)'> # searching the pattern> a> => re.search(pattern, file_path)> # printing the match> print> (a.group())> |
Wyjście:
test
Metoda 4: Użyj wbudowanej funkcji Pythona split(), aby podzielić ścieżkę pliku na listę poszczególnych komponentów, a następnie użyj metody rsplit():
możesz użyć wbudowanej funkcji Pythona split(), aby podzielić ścieżkę pliku na listę pojedynczych komponentów, a następnie użyć metody rsplit() do podzielenia ostatniego komponentu (który powinna być nazwą pliku i rozszerzeniem) na listę zawierający nazwę pliku i rozszerzenie. Następnie możesz użyć indeksowania, aby wyodrębnić nazwę pliku z tej listy.
Oto przykład, jak można to zrobić:
Python3
def> get_file_name(file_path):> > file_path_components> => file_path.split(> '/'> )> > file_name_and_extension> => file_path_components[> -> 1> ].rsplit(> '.'> ,> 1> )> > return> file_name_and_extension[> 0> ]> # Example usage> file_path> => 'C:/Users/test.txt'> result> => get_file_name(file_path)> print> (result)> # Output: 'test'> |
Wyjście: test
W tym podejściu najpierw wykorzystuje się funkcję split(), aby podzielić ścieżkę pliku na listę poszczególnych komponentów oddzielonych znakiem „/”. Następnie używana jest metoda rsplit() do podzielenia ostatniego składnika (którym powinna być nazwa i rozszerzenie pliku) na listę zawierającą nazwę pliku i rozszerzenie, używając znaku „.” jako separatora. Nazwa pliku jest następnie wyodrębniana z tej listy za pomocą indeksowania. To podejście będzie działać w przypadku dowolnej ścieżki i rozszerzenia pliku, o ile ścieżka pliku ma format, który można przeanalizować za pomocą metod split() i rsplit().