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
algorytm knn
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'> |
witaj świecie z Javą
>
>
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().