The OS modul v Pythonu poskytuje funkce pro interakci s operačním systémem. OS spadá pod standardní obslužné moduly Pythonu. Tento modul poskytuje přenosný způsob používání funkcí závislých na operačním systému.
The *os* a *os.path* moduly obsahují mnoho funkcí pro interakci se systémem souborů.
Funkce Python-OS-Module
Zde probereme některé důležité funkce modulu Python os:
- Manipulace s aktuálním pracovním adresářem
- Vytvoření adresáře
- Výpis souborů a adresářů pomocí Pythonu
- Odstranění adresáře nebo souborů pomocí Pythonu
Manipulace s aktuálním pracovním adresářem
Zvážit Aktuální pracovní adresář (CWD) jako složka, kde funguje Python. Kdykoli jsou soubory volány pouze jejich jménem, Python předpokládá, že začíná v CWD, což znamená, že odkaz pouze na jméno bude úspěšný pouze v případě, že je soubor v CWD Pythonu.
Poznámka: Složka, kde je spuštěn skript Python, se nazývá aktuální adresář. Toto není cesta, kde se nachází skript Python.
Získání aktuálního pracovního adresáře
Chcete-li získat umístění aktuálního pracovního adresáře os.getcwd() se používá.
Příklad: Tento kód používá ' os'> modul pro získání a vytištění aktuálního pracovního adresáře (CWD) skriptu Python. Načte CWD pomocí ' os.getcwd()'> a poté jej vytiskne do konzole.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Výstup:
Current working directory: /home/nikhil/Desktop/gfg>
Změna aktuálního pracovního adresáře
Chcete-li změnit aktuální pracovní adresář (CWD) os.chdir() používá se metoda. Tato metoda změní CWD na zadanou cestu. Jako nová cesta k adresáři trvá pouze jeden argument.
Poznámka: Aktuální pracovní adresář je složka, ve které pracuje Python skript.
Příklad: Kód zkontroluje a zobrazí aktuální pracovní adresář (CWD) dvakrát: před a po změně adresáře o jednu úroveň nahoru pomocí os.chdir('../')> . Poskytuje jednoduchý příklad, jak pracovat s aktuálním pracovním adresářem v Pythonu.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Výstup:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Vytvoření adresáře
V modulu OS jsou k dispozici různé metody pro vytvoření adresáře. Tyto jsou -
- os.mkdir()
- os.medirs()
Pomocí os.mkdir()
Používáním os.mkdir() metoda v Pythonu se používá k vytvoření adresáře s názvem path se zadaným číselným režimem. Tato metoda vyvolá FileExistsError, pokud adresář, který má být vytvořen, již existuje.
Příklad: Tento kód vytvoří dva adresáře: techcodeview.com v rámci D:/Projekty Pycharm/ adresář a Geekové v rámci D:/Projekty Pycharm adresář.
- První adresář je vytvořen pomocí
os.mkdir()>metodu bez určení režimu. - Druhý adresář je vytvořen stejnou metodou, ale specifickým režimem (
0o666>) je poskytován, který uděluje oprávnění ke čtení a zápisu. - Kód pak vytiskne zprávy označující, že adresáře byly vytvořeny.
import os directory = 'techcodeview.com' parent_dir = 'D:/Pycharm projects/' path = os.path.join(parent_dir, directory) os.mkdir(path) print('Directory '% s' created' % directory) directory = 'Geeks' parent_dir = 'D:/Pycharm projects' mode = 0o666 path = os.path.join(parent_dir, directory) os.mkdir(path, mode) print('Directory '% s' created' % directory)> Výstup:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Použití os.medirs()
os.medirs() metoda v Pythonu se používá k vytvoření adresáře rekurzivně. To znamená, že když při vytváření listového adresáře chybí jakýkoli adresář střední úrovně, metoda os.makedirs() je všechny vytvoří.
Příklad: Tento kód vytváří dva adresáře, Nikhil a C v různých nadřazených adresářích. Používá seos.makedirs>funkce, která zajistí, že budou vytvořeny nadřazené adresáře, pokud neexistují.
Nastavuje také oprávnění pro C adresář. Kód vytiskne zprávy pro potvrzení vytvoření těchto adresářů
Krajta import os directory = 'Nikhil' parent_dir = 'D:/Pycharm projects/GeeksForGeeks/Authors' path = os.path.join(parent_dir, directory) os.makedirs(path) print('Directory '% s' created' % directory) directory = 'c' parent_dir = 'D:/Pycharm projects/techcodeview.com/a/b' mode = 0o666 path = os.path.join(parent_dir, directory) os.makedirs(path, mode) print('Directory '% s' created' % directory)> Výstup:
Directory 'Nikhil' created Directory 'c' created>
Výpis souborů a adresářů pomocí Pythonu
Tady je os.listdir() metoda v Pythonu se používá k získání seznamu všech souborů a adresářů v zadaném adresáři. Pokud neurčíme žádný adresář, vrátí se seznam souborů a adresářů v aktuálním pracovním adresáři.
Příklad: Tento kód uvádí všechny soubory a adresáře v kořenovém adresáři (/) . Používá seos.listdir>získat seznam souborů a adresářů v zadané cestě a poté vytisknout výsledky.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Výstup:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Odstranění adresáře nebo souborů pomocí Pythonu
Modul OS poskytuje různé metody pro odstranění adresářů a souborů v Pythonu. Tyto jsou -
- Pomocí os.remove()
- Pomocí os.rmdir()
Použití metody os.remove().
os.remove() metoda v Pythonu se používá k odstranění nebo odstranění cesty k souboru. Tato metoda nemůže odstranit nebo odstranit adresář. Pokud je zadaná cesta adresářem, bude metodou vyvoláno OSError.
Příklad: Předpokládejme, že soubor obsažený ve složce je:

Tento kód odstraní soubor s názvem file1.txt ze zadaného umístění D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Používá seos.remove>funkce k odstranění souboru v zadané cestě.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Výstup:

Pomocí os.rmdir()
os.rmdir() metoda v Pythonu se používá k odstranění nebo odstranění prázdného adresáře. OSError bude vyvoláno, pokud zadaná cesta není prázdný adresář.
Příklad: Předpokládejme, že adresáře jsou

Tento kód se pokusí odstranit adresář s názvem Geekové nachází se na D:/Projekty Pycharm/ .
Používá seos.rmdir>funkce pro smazání adresáře. Pokud je adresář prázdný, bude odstraněn. Pokud obsahuje soubory nebo podadresáře, může dojít k chybě.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Výstup:

Běžně používané funkce
Použití funkce os.name
Tato funkce udává název importovaného modulu závislého na operačním systému . V současné době jsou zaregistrovány následující názvy: ‚posix‘, ‚nt‘, ‚os2‘, ‚ce‘, ‚java‘ a ‚riscos‘.
Krajta import os print(os.name)>
Výstup:
posix>
Poznámka: Když zde spustíte kód, může to poskytnout různý výstup na různých interpretech, jako je „posix“.
Použití funkce os.error
Všechny funkce v tomto modulu se zvyšují OSError v případě neplatných nebo nepřístupných názvů souborů a cest nebo jiných argumentů, které mají správný typ, ale nejsou akceptovány operačním systémem. os.error je alias pro vestavěnou výjimku OSError.
Tento kód čte obsah souboru s názvem „GFG.txt“ . Používá a ' zkuste… kromě ' blok pro zpracování potenciálních chyb, zejména „ IOError ' k tomu může dojít, pokud dojde k problému se čtením souboru.
Pokud dojde k chybě, vytiskne se zpráva, Problém při čtení: GFG.txt.
Krajta import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Výstup:
Problem reading: GFG.txt>
Použití funkce os.popen().
Tato metoda otevře kanál do nebo z příkazu. Návratovou hodnotu lze číst nebo zapisovat v závislosti na tom, zda je režim „r“ nebo „w“ .
Syntax:
os.popen(command[, mode[, bufsize]])>
Parametry mode & bufsize nejsou nezbytné parametry, pokud nejsou zadány, použije se výchozí „r“ pro režim.
Tento kód otevře soubor s názvem „GFG.txt“ v režimu zápisu zapisuje Ahoj na něj a poté si přečte a vytiskne jeho obsah. Použití os.popen> se nedoporučuje a pro tyto úlohy se používají standardní operace se soubory.
import os fd = 'GFG.txt' file = open(fd, 'w') file.write('Hello') file.close() file = open(fd, 'r') text = file.read() print(text) file = os.popen(fd, 'w') file.write('Hello')> Výstup:
Hello>
Poznámka: Výstup pro popen() se nezobrazí, došlo by k přímým změnám v souboru.
Použití funkce os.close().
Zavřete deskriptor souboru fd. Soubor otevřený pomocí open() lze zavřít pouze pomocí close(). Ale soubor otevřený přes os.popen() může být uzavřen pomocí close() nebo os.close() . Pokud se pokusíme zavřít soubor otevřený pomocí open(), pomocí os.close(), Python vyvolá TypeError.
Krajta import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Výstup:
Traceback (most recent call last): File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>
Poznámka: Stejná chyba nemusí být vyvolána kvůli neexistujícímu souboru nebo oprávnění.
Použití funkce os.rename().
Soubor old.txt lze pomocí funkce přejmenovat na nový.txt os.rename() . Název souboru se změní pouze v případě, že soubor existuje a uživatel má dostatečná oprávnění ke změně souboru.
Krajta import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Výstup:
Traceback (most recent call last): File 'C:UsersGFGDesktopModuleOSGeeksForGeeksOSFile.py', line 3, in os.rename(fd,'New.txt') FileNotFoundError: [WinError 2] The system cannot find the file specified: 'GFG.txt' ->'New.txt'>
Existuje název souboru GFG.txt, takže při prvním použití os.rename() se soubor přejmenuje.
Při druhém volání funkce os.rename() existuje soubor New.txt a nikoli GFG.txt, takže Python vyvolá FileNotFoundError.
Použití funkce os.remove().
Pomocí modulu Os můžeme odstranit soubor v našem systému pomocí os.remove() metoda. K odstranění souboru musíme předat jméno souboru jako parametr.
Krajta import os #importing os module. os.remove('file_name.txt') #removing the file.> Modul OS nám poskytuje vrstvu abstrakce mezi námi a operačním systémem.
Když pracujeme s os modul vždy specifikuje absolutní cestu v závislosti na operačním systému, který kód může běžet na jakémkoli operačním systému, ale musíme cestu přesně změnit. Pokud se pokusíte odstranit soubor, který neexistuje, dostanete FileNotFoundError .
Použití funkce os.path.exists().
Tato metoda zkontroluje, zda soubor existuje nebo ne, předáním názvu souboru jako parametru. OS modul má podmodul s názvem PATH, pomocí kterého můžeme provádět mnohem více funkcí.
Krajta import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)> Výstup:
False>
Stejně jako ve výše uvedeném kódu soubor neexistuje, bude dávat výstup False. Pokud soubor existuje, dá nám výstup True.
Použití funkce os.path.getsize().
v os.path.getsize( ), python nám dá velikost souboru v bajtech. Pro použití této metody musíme předat jméno souboru jako parametr.
Krajta import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')> Výstup:
sady v Javě
Size of the file is 192 bytes.>