The OS modul v Pythone poskytuje funkcie na interakciu s operačným systémom. OS patrí do štandardných modulov Pythonu. Tento modul poskytuje prenosný spôsob používania funkcií závislých od operačného systému.
The *os* a *os.path* moduly obsahujú mnoho funkcií na interakciu so súborovým systémom.
Funkcie modulu Python OS
Tu budeme diskutovať o niektorých dôležitých funkciách modulu Python os:
- Spracovanie aktuálneho pracovného adresára
- Vytvorenie adresára
- Vypisovanie súborov a adresárov pomocou Pythonu
- Odstránenie adresára alebo súborov pomocou Pythonu
Spracovanie aktuálneho pracovného adresára
Zvážte Aktuálny pracovný adresár (CWD) ako priečinok, kde funguje Python. Vždy, keď sa súbory volajú iba podľa ich mena, Python predpokladá, že začína v CWD, čo znamená, že odkaz len na názov bude úspešný iba vtedy, ak je súbor v CWD Pythonu.
Poznámka: Priečinok, v ktorom je spustený skript Python, sa nazýva aktuálny adresár. Toto nie je cesta, kde sa nachádza skript Python.
Získanie aktuálneho pracovného adresára
Ak chcete získať umiestnenie aktuálneho pracovného adresára os.getcwd() sa používa.
Príklad: Tento kód používa ' os'> modul na získanie a vytlačenie aktuálneho pracovného adresára (CWD) skriptu Python. Načíta CWD pomocou ' os.getcwd()'> a potom ho vytlačí do konzoly.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Výkon:
Current working directory: /home/nikhil/Desktop/gfg>
Zmena aktuálneho pracovného adresára
Ak chcete zmeniť aktuálny pracovný adresár (CWD) os.chdir() používa sa metóda. Táto metóda zmení CWD na zadanú cestu. Ako nová cesta k adresáru je potrebný iba jeden argument.
Poznámka: Aktuálny pracovný adresár je priečinok, v ktorom pracuje skript Python.
Príklad: Kód skontroluje a zobrazí aktuálny pracovný adresár (CWD) dvakrát: pred a po zmene adresára o jednu úroveň vyššie pomocou os.chdir('../')> . Poskytuje jednoduchý príklad, ako pracovať s aktuálnym pracovným adresárom v Pythone.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Výkon:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Vytvorenie adresára
V module OS sú k dispozícii rôzne metódy na vytvorenie adresára. Toto sú –
- os.mkdir()
- os.medirs()
Použitie os.mkdir()
Používaním os.mkdir() metóda v Pythone sa používa na vytvorenie adresára s názvom cesta so zadaným číselným režimom. Táto metóda vyvolá FileExistsError, ak adresár, ktorý sa má vytvoriť, už existuje.
Príklad: Tento kód vytvára dva adresáre: techcodeview.com v rámci D:/Projekty Pycharm/ adresár a Geekovia v rámci D:/Projekty Pycharm adresár.
- Prvý adresár sa vytvorí pomocou
os.mkdir()>metódu bez určenia režimu. - Druhý adresár je vytvorený pomocou rovnakej metódy, ale v špecifickom režime (
0o666>) poskytuje oprávnenie na čítanie a zápis. - Kód potom vytlačí správy, ktoré označujú, že adresáre boli vytvorené.
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ýkon:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Použitie os.medirs()
os.medirs() metóda v Pythone sa používa na vytvorenie adresára rekurzívne. To znamená, že pri vytváraní listového adresára, ak chýba akýkoľvek adresár strednej úrovne, metóda os.makedirs() ich všetky vytvorí.
Príklad: Tento kód vytvára dva adresáre, Nikhil a c v rôznych nadradených adresároch. Používa saos.makedirs>funkcia, ktorá zabezpečí, že sa vytvoria nadradené adresáre, ak neexistujú.
Nastavuje tiež povolenia pre c adresár. Kód vytlačí správy na potvrdenie vytvorenia týchto adresárov
Python 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ýkon:
Directory 'Nikhil' created Directory 'c' created>
Vypisovanie súborov a adresárov pomocou Pythonu
Existuje os.listdir() metóda v Pythone sa používa na získanie zoznamu všetkých súborov a adresárov v zadanom adresári. Ak nešpecifikujeme žiadny adresár, vráti sa zoznam súborov a adresárov v aktuálnom pracovnom adresári.
Príklad: Tento kód obsahuje zoznam všetkých súborov a adresárov v koreňovom adresári (/) . Používa saos.listdir>získa zoznam súborov a adresárov v zadanej ceste a potom vytlačí výsledky.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Výkon:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Odstránenie adresára alebo súborov pomocou Pythonu
Modul OS poskytuje rôzne metódy na odstránenie adresárov a súborov v Pythone. Toto sú –
- Použitie os.remove()
- Použitie os.rmdir()
Použitie metódy os.remove().
os.remove() metóda v Pythone sa používa na odstránenie alebo odstránenie cesty k súboru. Táto metóda nemôže odstrániť alebo odstrániť adresár. Ak je zadaná cesta adresárom, metóda vyvolá OSError.
Príklad: Predpokladajme, že súbor obsiahnutý v priečinku je:

Tento kód odstráni súbor s názvom file1.txt zo zadaného umiestnenia D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Používa saos.remove>funkciu na odstránenie súboru v zadanej ceste.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Výkon:

Použitie os.rmdir()
os.rmdir() metóda v Pythone sa používa na odstránenie alebo odstránenie prázdneho adresára. Ak zadaná cesta nie je prázdnym adresárom, vyvolá sa OSError.
Príklad: Predpokladajme, že adresáre sú

Tento kód sa pokúša odstrániť adresár s názvom Geekovia umiestnený na D:/Projekty Pycharm/ .
Používa saos.rmdir>funkciu na vymazanie adresára. Ak je adresár prázdny, bude odstránený. Ak obsahuje súbory alebo podadresáre, môže sa vyskytnúť chyba.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Výkon:

Bežne používané funkcie
Pomocou funkcie os.name
Táto funkcia udáva názov importovaného modulu závislého od operačného systému . V súčasnosti sú zaregistrované tieto názvy: „posix“, „nt“, „os2“, „ce“, „java“ a „riscos“.
Python import os print(os.name)>
Výkon:
posix>
Poznámka: Keď tu spustíte kód, môže to poskytnúť odlišný výstup na rôznych interpretoch, ako napríklad „posix“.
Použitie funkcie os.error
Všetky funkcie v tomto module sa zvyšujú OSError v prípade neplatných alebo neprístupných názvov súborov a ciest, alebo iných argumentov, ktoré majú správny typ, ale nie sú akceptované operačným systémom. os.error je alias pre vstavanú výnimku OSError.
Tento kód číta obsah súboru s názvom „GFG.txt“ . Používa a ' skús...okrem ' blok na spracovanie potenciálnych chýb, najmä „ IOError ' ktorá sa môže vyskytnúť, ak sa vyskytne problém s čítaním súboru.
Ak sa vyskytne chyba, vytlačí sa hlásenie, Problém s čítaním: GFG.txt.
Python import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Výkon:
Problem reading: GFG.txt>
Použitie funkcie os.popen().
Táto metóda otvára potrubie do alebo z príkazu. Návratovú hodnotu možno čítať alebo zapisovať v závislosti od toho, či je režim „r“ alebo „w“ .
Syntax:
os.popen(command[, mode[, bufsize]])>
Parametre mode & bufsize nie sú nevyhnutné parametre, ak nie sú uvedené, pre režim sa použije predvolené „r“.
Tento kód otvorí súbor s názvom „GFG.txt“ v režime zápisu píše Ahoj a potom si prečíta a vytlačí jeho obsah. Použitie os.popen> sa neodporúča a na tieto úlohy sa používajú štandardné operácie so súbormi.
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ýkon:
Hello>
Poznámka: Výstup pre popen() sa nezobrazí, došlo by k priamym zmenám v súbore.
Použitie funkcie os.close().
Zatvorte deskriptor súboru fd. Súbor otvorený pomocou open() je možné zatvoriť iba pomocou close(). Ale súbor otvorený cez os.popen() môže byť uzavretý pomocou close() alebo os.close() . Ak sa pokúsime zatvoriť súbor otvorený pomocou open(), pomocou os.close(), Python vyvolá TypeError.
Python import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Výkon:
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: Rovnaká chyba nemusí byť vyvolaná kvôli neexistujúcemu súboru alebo privilégiu povolenia.
Použitie funkcie os.rename().
Súbor old.txt je možné pomocou funkcie premenovať na nový.txt os.rename() . Názov súboru sa zmení iba vtedy, ak súbor existuje a používateľ má dostatočné oprávnenie na zmenu súboru.
Python import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Výkon:
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ázov súboru GFG.txt, takže pri prvom použití os.rename() sa súbor premenuje.
Pri druhom volaní funkcie os.rename() existuje súbor New.txt a nie GFG.txt, takže Python vyhodí FileNotFoundError.
Použitie funkcie os.remove().
Pomocou modulu Os môžeme odstrániť súbor v našom systéme pomocou os.remove() metóda. Na odstránenie súboru musíme zadať názov súboru ako parameter.
Python import os #importing os module. os.remove('file_name.txt') #removing the file.> Modul OS nám poskytuje vrstvu abstrakcie medzi nami a operačným systémom.
Keď pracujeme s os modul vždy špecifikujte absolútnu cestu v závislosti od operačného systému, ktorý kód môže bežať na akomkoľvek operačnom systéme, ale musíme presne zmeniť cestu. Ak sa pokúsite odstrániť súbor, ktorý neexistuje, dostanete FileNotFoundError .
Použitie funkcie os.path.exists().
Táto metóda skontroluje, či súbor existuje alebo nie, zadaním názvu súboru ako parametra. OS modul má podmodul s názvom PATH, pomocou ktorého môžeme vykonávať oveľa viac funkcií.
Python import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)> Výkon:
False>
Ako vo vyššie uvedenom kóde, súbor neexistuje, bude mať výstup False. Ak súbor existuje, dá nám výstup True.
Použitie funkcie os.path.getsize().
In os.path.getsize( ), python nám dá veľkosť súboru v bajtoch. Ak chcete použiť túto metódu, musíme zadať názov súboru ako parameter.
Python import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')> Výkon:
css komentár
Size of the file is 192 bytes.>