logo

Modul OS v Pythonu s příklady

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.

Krajta
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.

Krajta
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.
Krajta
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.

Krajta
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ě.

Krajta
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ě.

Krajta
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.

Krajta
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.>