V tomto kurzu se dozvíte o správě souborů a adresářů v Pythonu, tj. Vytvoření adresáře, jeho přejmenování, výpis všech adresářů a práce s nimi.
Video: Modul Python os
Adresář Pythonu
Pokud je v našem programu v Pythonu velké množství souborů, které můžeme zpracovat, můžeme náš kód uspořádat do různých adresářů, abychom věci zvládli lépe.
Adresář nebo složka je kolekce souborů a podadresářů. Python má os
modul, který nám poskytuje mnoho užitečných metod pro práci s adresáři (a také se soubory).
Získejte aktuální adresář
Současný pracovní adresář můžeme získat pomocí getcwd()
metody os
modulu.
Tato metoda vrací aktuální pracovní adresář ve formě řetězce. Můžeme také použít getcwdb()
metodu k získání jako bajtový objekt.
>>> import os >>> os.getcwd() 'C:\Program Files\PyScripter' >>> os.getcwdb() b'C:\Program Files\PyScripter'
Extra zpětné lomítko znamená únikovou sekvenci. print()
Funkce bude činit to správně.
>>> print(os.getcwd()) C:Program FilesPyScripter
Změna adresáře
Můžeme změnit aktuální pracovní adresář pomocí chdir()
metody.
Nová cesta, kterou chceme změnit, musí být k této metodě dodána jako řetězec. K oddělení prvků cesty můžeme použít lomítko /
i lomítko .
Při použití zpětného lomítka je bezpečnější použít únikovou sekvenci.
>>> os.chdir('C:\Python33') >>> print(os.getcwd()) C:Python33
Seznam adresářů a souborů
Pomocí této listdir()
metody lze načíst všechny soubory a podadresáře uvnitř adresáře .
Tato metoda přijímá cestu a vrací seznam podadresářů a souborů v této cestě. Pokud není zadána žádná cesta, vrátí seznam podadresářů a souborů z aktuálního pracovního adresáře.
>>> print(os.getcwd()) C:Python33 >>> os.listdir() ('DLLs', 'Doc', 'include', 'Lib', 'libs', 'LICENSE.txt', 'NEWS.txt', 'python.exe', 'pythonw.exe', 'README.txt', 'Scripts', 'tcl', 'Tools') >>> os.listdir('G:\') ('$RECYCLE.BIN', 'Movies', 'Music', 'Photos', 'Series', 'System Volume Information')
Vytvoření nového adresáře
Pomocí této mkdir()
metody můžeme vytvořit nový adresář .
Tato metoda přijímá cestu k novému adresáři. Pokud není zadána úplná cesta, vytvoří se nový adresář v aktuálním pracovním adresáři.
>>> os.mkdir('test') >>> os.listdir() ('test')
Přejmenování adresáře nebo souboru
rename()
Metoda může přejmenovat adresář nebo soubor.
Pro přejmenování libovolného adresáře nebo souboru má rename()
metoda dva základní argumenty: starý název jako první argument a nový název jako druhý argument.
>>> os.listdir() ('test') >>> os.rename('test','new_one') >>> os.listdir() ('new_one')
Odebrání adresáře nebo souboru
Soubor lze odstranit (smazat) pomocí této remove()
metody.
Podobně rmdir()
metoda odstraní prázdný adresář.
>>> os.listdir() ('new_one', 'old.txt') >>> os.remove('old.txt') >>> os.listdir() ('new_one') >>> os.rmdir('new_one') >>> os.listdir() ()
Poznámka : rmdir()
Metoda může odstranit pouze prázdné adresáře.
Abychom odstranili neprázdný adresář, můžeme použít rmtree()
metodu uvnitř shutil
modulu.
>>> os.listdir() ('test') >>> os.rmdir('test') Traceback (most recent call last):… OSError: (WinError 145) The directory is not empty: 'test' >>> import shutil >>> shutil.rmtree('test') >>> os.listdir() ()