Program w języku Python pobierający nazwę pliku ze ścieżki pliku

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:

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().