Pythona | metoda os.path.join().

Moduł Os Path jest podmodułem modułu OS w Pythonie używanym do typowej manipulacji nazwami ścieżek. W tym artykule dowiemy się o os.path.join() i bezpiecznej obsłudze ścieżek plików System operacyjny Python .

Składnia metody os.path.join() w Pythonie

Składnia: os.path.join(ścieżka, *ścieżki)

Parametr:

  • ścieżka : Obiekt podobny do ścieżki reprezentujący ścieżkę systemu plików.
  • *ścieżka : Obiekt podobny do ścieżki reprezentujący ścieżkę systemu plików. Reprezentuje komponenty ścieżki, które mają zostać połączone. Obiekt podobny do ścieżki to obiekt typu string lub bytes reprezentujący ścieżkę.
  • Notatka: Specjalna składnia *argumenty (tutaj *paths) w definicjach funkcji w Pythonie służy do przekazywania zmiennej liczby argumentów do funkcji.

Typ zwrotu: Ta metoda zwraca ciąg znaków reprezentujący połączone składniki ścieżki.

metoda os.path.join() w Pythonie

The os.path.join() Metoda w Pythonie inteligentnie łączy jeden lub więcej komponentów ścieżki. Ta metoda łączy różne komponenty ścieżki z dokładnie jednym separatorem katalogu („/”) po każdej niepustej części z wyjątkiem ostatniego komponentu ścieżki. Jeśli ostatni łączony komponent ścieżki jest pusty, na końcu umieszczany jest separator katalogu („/”).

Jeśli komponent ścieżki reprezentuje ścieżkę bezwzględną, wówczas wszystkie poprzednio połączone komponenty są odrzucane, a łączenie jest kontynuowane od bezwzględnego komponentu ścieżki.

os.path.join() Przykłady funkcji i przypadki użycia

Poniżej znajduje się kilka przykładów i przypadków zastosowań, w których możemy łączyć ścieżki plików i bezpiecznie obsługiwać ścieżki plików Pyton TY.

Łączenie komponentów ścieżki

W tym przykładzie metoda `os.path.join()` została użyta do łączenia komponentów ścieżki, skutecznie konstruując prawidłowe ścieżki. Zapewnia kompatybilność między platformami poprzez odpowiednie łączenie komponentów.

Python3




import> os> # Path> path> => '/home'> # Join various path components> print> (os.path.join(path,> 'User/Desktop'> ,> 'file.txt'> ))> # Path> path> => 'User/Documents'> # Join various path components> print> (os.path.join(path,> '/home'> ,> 'file.txt'> ))> # Path> path> => '/User'> # Join various path components> print> (os.path.join(path,> 'Downloads'> ,> 'file.txt'> ,> '/home'> ))>

Wyjście

/home/User/Desktop/file.txt /home/file.txt /home 

Odczytywanie i zapisywanie plików

W tym przykładzie os.path.join()> metoda służy do utworzenia pełnej ścieżki pliku poprzez połączenie katalogu podstawowego i nazwy pliku. Skonstruowana ścieżka jest następnie używana do odczytania zawartości nazwanego pliku example.txt> .

przykład.txt

techcodeview.com 

Python3




import> os> # Base directory and filename> base_dir> => '/home/user'> filename> => 'example.txt'> # Construct the full path> full_path> => os.path.join(base_dir, filename)> # Reading and writing files using the full path> with> open> (full_path,> 'r'> ) as> file> :> > content> => file> .read()> > print> (content)>

Wyjście:

techcodeview.com 

Lista plików w katalogu

W tym przykładzie zastosowano metodę `os.path.join()` w celu wygenerowania pełnej ścieżki dla każdego pliku w bieżącym katalogu roboczym. Następnie drukowane są pełne ścieżki, co pozwala na kompleksową listę wszystkich plików w katalogu.

Python3




import> os> # Current working directory> current_dir> => os.getcwd()> # List files in the current directory> files_in_dir> => os.listdir(current_dir)> # Iterate over files and print their full paths> for> file_name> in> files_in_dir:> > file_path> => os.path.join(current_dir, file_name)> > print> (file_path)>

Wyjście

/home/guest/sandbox/1e914974-f313-477e-a710-2057a0037607.in /home/guest/sandbox/driver /home/guest/sandbox/Solution.py 

Iterowanie po ścieżkach za pomocą pętli For

W tym przykładzie metoda `os.path.join()` została wykorzystana w pętli do dynamicznego tworzenia pełnej ścieżki dla każdej wymienionej nazwy pliku. Skonstruowane ścieżki są następnie drukowane, aby wskazać przetwarzanie każdego odpowiedniego pliku.

Python3




import> os> # List of file names> names> => [> 'file1.txt'> ,> 'file2.txt'> ,> 'file3.txt'> ]> # Iterate over file names and process each file> for> file_name> in> names:> > file_path> => os.path.join(> '/home/user'> , file_name)> > print> (f> 'Processing file: {file_path}'> )>

Wyjście

Processing file: /home/user/file1.txt Processing file: /home/user/file2.txt Processing file: /home/user/file3.txt