logo

Modul OS v Pythonu s primeri

The OS modul v Pythonu ponuja funkcije za interakcijo z operacijskim sistemom. OS spada pod standardne pomožne module Python. Ta modul zagotavlja prenosljiv način uporabe funkcij, odvisnih od operacijskega sistema.

The *os* in *os.path* moduli vključujejo številne funkcije za interakcijo z datotečnim sistemom.

Funkcije modula Python-OS

Tukaj bomo razpravljali o nekaterih pomembnih funkcijah modula Python OS:



  • Ravnanje s trenutnim delovnim imenikom
  • Ustvarjanje imenika
  • Izpisovanje datotek in imenikov s Pythonom
  • Brisanje imenika ali datotek z uporabo Pythona

Ravnanje s trenutnim delovnim imenikom

Razmislite Trenutni delovni imenik (CWD) kot mapo, kjer deluje Python. Kadarkoli se datoteke kličejo samo po imenu, Python predpostavlja, da se začne v CWD, kar pomeni, da bo referenca samo z imenom uspešna le, če je datoteka v Pythonovem CWD.

Opomba: Mapa, v kateri se izvaja skript Python, je znana kot trenutni imenik. To ni pot, kjer se nahaja skript Python.

Pridobivanje trenutnega delovnega imenika

Za pridobitev lokacije trenutnega delovnega imenika os.getcwd() se uporablja.

primer: Ta koda uporablja ' os'> modul za pridobivanje in tiskanje trenutnega delovnega imenika (CWD) skripta Python. Pridobi CWD z uporabo ' os.getcwd()'> in ga nato natisne na konzolo.

Python
import os cwd = os.getcwd() print('Current working directory:', cwd)>

Izhod:

Current working directory: /home/nikhil/Desktop/gfg>

Spreminjanje trenutnega delovnega imenika

Za spremembo trenutnega delovnega imenika (CWD) os.chdir() uporabljena metoda. Ta metoda spremeni CWD v določeno pot. Potrebuje samo en argument kot pot do novega imenika.

Opomba: Trenutni delovni imenik je mapa, v kateri deluje skript Python.

primer: Koda dvakrat preveri in prikaže trenutni delovni imenik (CWD): pred in po spremembi imenika za eno raven navzgor z os.chdir('../')> . Ponuja preprost primer, kako delati s trenutnim delovnim imenikom v Pythonu.

Python
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()>

Izhod:

Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>

Ustvarjanje imenika

V modulu OS so na voljo različne metode za ustvarjanje imenika. To so –

  • os.mkdir()
  • os.makedirs()

Uporaba os.mkdir()

Z uporabo os.mkdir() metoda v Pythonu se uporablja za ustvarjanje imenika z imenom pot z navedenim številskim načinom. Ta metoda sproži FileExistsError, če imenik, ki ga želite ustvariti, že obstaja.

primer: Ta koda ustvari dva imenika: techcodeview.com znotraj D:/Pycharm projekti/ imenik in Geeki znotraj D:/Pycharm projekti imenik.

  • Prvi imenik je ustvarjen z uporaboos.mkdir()>način brez navedbe načina.
  • Drugi imenik je ustvarjen z isto metodo, vendar na poseben način ( 0o666> ) je na voljo, ki daje dovoljenja za branje in pisanje.
  • Koda nato natisne sporočila, ki označujejo, da so bili imeniki ustvarjeni.
Python
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)>

Izhod:

Directory 'techcodeview.com' created Directory 'Geeks' created>

Uporaba os.makedirs()

os.makedirs() metoda v Pythonu se uporablja za rekurzivno ustvarjanje imenika. To pomeni, da med ustvarjanjem listnega imenika, če manjka kateri koli imenik vmesne ravni, jih bo metoda os.makedirs() ustvarila vse.

primer: Ta koda ustvari dva imenika, Nikhil in c , znotraj različnih nadrejenih imenikov. Uporabljaos.makedirs>funkcijo za zagotovitev, da so nadrejeni imeniki ustvarjeni, če ne obstajajo.

Nastavi tudi dovoljenja za c imenik. Koda natisne sporočila za potrditev ustvarjanja teh imenikov

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)>

Izhod:

Directory 'Nikhil' created Directory 'c' created>

Izpisovanje datotek in imenikov s Pythonom

Tukaj je os.listdir() metoda v Pythonu se uporablja za pridobitev seznama vseh datotek in imenikov v navedenem imeniku. Če ne podamo nobenega imenika, bo vrnjen seznam datotek in imenikov v trenutnem delovnem imeniku.

primer: Ta koda navaja vse datoteke in imenike v korenskem imeniku (/) . Uporabljaos.listdir>funkcijo za pridobitev seznama datotek in imenikov na podani poti in nato natisne rezultate.

Python
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)>

Izhod:

Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr',  'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>

Brisanje imenika ali datotek z uporabo Pythona

Modul OS ponuja različne metode za odstranjevanje imenikov in datotek v Pythonu. To so –

  • Uporaba os.remove()
  • Uporaba os.rmdir()

Uporaba metode os.remove().

os.remove() metoda v Pythonu se uporablja za odstranitev ali brisanje poti datoteke. Ta metoda ne more odstraniti ali izbrisati imenika. Če je podana pot imenik, bo metoda sprožila OSError.

primer: Recimo, da je datoteka v mapi:

Ta koda odstrani datoteko z imenom file1.txt z navedene lokacije D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Uporabljaos.remove>funkcijo za brisanje datoteke na določeni poti.

Python
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>

Izhod:


Uporaba os.rmdir()

os.rmdir() metoda v Pythonu se uporablja za odstranitev ali brisanje praznega imenika. OSError se bo sprožil, če podana pot ni prazen imenik.

primer: Recimo, da so imeniki

Ta koda poskuša odstraniti imenik z imenom Geeki ki se nahaja na D:/Pycharm projekti/ .

Uporabljaos.rmdir>funkcijo za brisanje imenika. Če je imenik prazen, bo odstranjen. Če vsebuje datoteke ali podimenike, lahko naletite na napako.

Python
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>

Izhod:

Pogosto uporabljene funkcije

Uporaba funkcije os.name

Ta funkcija poda ime uvoženega modula, odvisnega od operacijskega sistema . Trenutno so registrirana naslednja imena: 'posix', 'nt', 'os2', 'ce', 'java' in 'riscos'.

Python
import os print(os.name)>

Izhod:

posix>

Opomba: Pri različnih tolmačih, kot je na primer »posix«, lahko daje drugačen rezultat, ko tukaj zaženete kodo.

Uporaba funkcije os.error

Vse funkcije v tem modulu dvignejo OSError v primeru neveljavnih ali nedostopnih imen in poti datotek ali drugih argumentov, ki imajo pravilen tip, vendar jih operacijski sistem ne sprejema. os.error je vzdevek za vgrajeno izjemo OSError.

Ta koda prebere vsebino datoteke z imenom 'GFG.txt' . Uporablja a ' poskusi ... razen ' blok za obravnavanje morebitnih napak, zlasti ' IOError ' do tega lahko pride, če pride do težave pri branju datoteke.

Če pride do napake, bo natisnil sporočilo, ki pravi: Težava pri branju: GFG.txt.

Python
import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)>

Izhod:

Problem reading: GFG.txt>

Uporaba funkcije os.popen().

Ta metoda odpre cev do ali od ukaza. Vrnjeno vrednost je mogoče prebrati ali zapisati, odvisno od tega, ali je način 'r' ali 'w' .
Sintaksa:

 os.popen(command[, mode[, bufsize]])>

Parametra mode & bufsize nista potrebna parametra; če nista navedena, se za način uporabi privzeti 'r'.

Ta koda odpre datoteko z imenom 'GFG.txt' v načinu pisanja, piše zdravo vanj ter nato prebere in natisne njegovo vsebino. Uporaba os.popen> ni priporočljivo in za te naloge se uporabljajo standardne operacije datotek.

Python
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')>

Izhod:

Hello>

Opomba: Izhod za popen() ne bo prikazan, prišlo bi do neposrednih sprememb v datoteki.

Uporaba funkcije os.close().

Zaprite deskriptor datoteke fd. Datoteko, odprto z open(), lahko zaprete samo z close(). Toda datoteko, odprto prek os.popen(), lahko zaprete z close() oz os.close() . Če poskušamo zapreti datoteko, odprto z open(), z os.close(), bi Python vrgel TypeError.

Python
import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>

Izhod:

Traceback (most recent call last):  File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in   os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>

Opomba: Ista napaka morda ne bo vržena zaradi neobstoječe datoteke ali privilegija dovoljenja.

Uporaba funkcije os.rename().

Datoteko old.txt lahko preimenujete v new.txt s funkcijo os.rename() . Ime datoteke se spremeni le, če datoteka obstaja in ima uporabnik zadostna dovoljenja za spreminjanje datoteke.

Python
import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>

Izhod:

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' ->'Nova.txt'>

Ime datoteke GFG.txt obstaja, zato se ob prvi uporabi os.rename() datoteka preimenuje.

Ko drugič pokličete funkcijo os.rename(), datoteka New.txt obstaja in ne GFG.txt, zato Python vrže FileNotFoundError.

Uporaba funkcije os.remove().

Z uporabo modula Os lahko odstranimo datoteko v našem sistemu z uporabo os.remove() metoda. Za odstranitev datoteke moramo posredovati ime datoteke kot parameter.

Python
import os #importing os module. os.remove('file_name.txt') #removing the file.>

Modul OS nam zagotavlja plast abstrakcije med nami in operacijskim sistemom.

Ko delamo z os modul vedno določi absolutno pot, odvisno od operacijskega sistema, koda se lahko izvaja v katerem koli OS, vendar moramo pot natančno spremeniti. Če poskusite odstraniti datoteko, ki ne obstaja, boste dobili FileNotFoundError .

Uporaba funkcije os.path.exists().

Ta metoda bo preverila, ali datoteka obstaja ali ne, tako da posreduje ime datoteke kot parameter. Modul OS ima podmodul z imenom PATH, s pomočjo katerega lahko izvajamo veliko več funkcij.

Python
import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)>

Izhod:

False>

Kot v zgornji kodi, datoteka ne obstaja, bo dala izhod False. Če datoteka obstaja, nam bo izpis dal True.

Uporaba funkcije os.path.getsize().

noter os.path.getsize( ), nam bo python dal velikost datoteke v bajtih. Za uporabo te metode moramo posredovati ime datoteke kot parameter.

Python
import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')>

Izhod:

niz nizov c programiranje
Size of the file is 192 bytes.>