Os Path Module je dílčí modul modulu OS v Pythonu používaný pro běžnou manipulaci s názvy cest. V tomto článku se dozvíme o os.path.join() a bezpečném zacházení s cestami k souborům OS Python .
Syntaxe metody Python os.path.join()
Syntax: os.path.join(cesta, *cesty)
Parametr:
- cesta : Objekt podobný cestě představující cestu systému souborů.
- *cesta : Objekt podobný cestě představující cestu systému souborů. Představuje součásti cesty, které mají být spojeny. Objekt podobný cestě je buď řetězec nebo objekt typu bytes představující cestu.
- Poznámka: Speciální syntaxe *argumenty (zde *cesty) v definicích funkcí v pythonu se používá k předání proměnného počtu argumentů do funkce.
Typ vrácení: Tato metoda vrací řetězec, který představuje zřetězené komponenty cesty.
metoda os.path.join() v Pythonu
The os.path.join() Metoda v Pythonu inteligentně spojuje jednu nebo více komponent cesty. Tato metoda zřetězí různé komponenty cesty s přesně jedním oddělovačem adresáře (‘/‘) za každou neprázdnou částí kromě poslední komponenty cesty. Pokud je poslední komponenta cesty, která má být připojena, prázdná, pak se na konec vloží oddělovač adresáře („/“).
Pokud komponenta cesty představuje absolutní cestu, pak jsou všechny předchozí spojené komponenty vyřazeny a spojování pokračuje od komponenty absolutní cesty.
Příklady funkcí os.path.join() a případy použití
Níže je uvedeno několik příkladů a případů použití, pomocí kterých můžeme bezpečně spojit cesty k souborům a manipulovat s nimi Krajta VY.
Zřetězení komponent cesty
V tomto příkladu je metoda `os.path.join()` použita ke zřetězení komponent cesty, čímž se efektivně vytvářejí platné cesty. Správným spojením komponent zajišťuje kompatibilitu napříč platformami.
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'>))> |
>
příklady programu python
>Výstup
/home/User/Desktop/file.txt /home/file.txt /home>
Čtení a zápis souborů
V tomto příkladu jeos.path.join()>metoda se používá k vytvoření úplné cesty k souboru spojením základního adresáře a názvu souboru. Vytvořená cesta se pak použije ke čtení obsahu pojmenovaného souboruexample.txt>.
example.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)> |
>
>
Výstup:
techcodeview.com>
Výpis souborů do adresáře
V tomto příkladu je k vygenerování úplné cesty pro každý soubor v aktuálním pracovním adresáři použita metoda `os.path.join()`. Poté se vytisknou úplné cesty, což umožňuje úplný seznam všech souborů v adresáři.
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)> |
>
>Výstup
/home/guest/sandbox/1e914974-f313-477e-a710-2057a0037607.in /home/guest/sandbox/driver /home/guest/sandbox/Solution.py>
Iterace přes cesty pomocí smyčky For
V tomto příkladu je metoda `os.path.join()` použita v rámci smyčky k dynamickému vytvoření úplné cesty pro každý uvedený název souboru. Vytvořené cesty jsou pak vytištěny, aby indikovaly zpracování každého příslušného souboru.
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}'>)> |
konstruktor pythonu
>
>Výstup
Processing file: /home/user/file1.txt Processing file: /home/user/file2.txt Processing file: /home/user/file3.txt>