logo

OS modulis Python su pavyzdžiais

The OS modulis Python suteikia funkcijas, skirtas sąveikai su operacine sistema. OS patenka į standartinius Python paslaugų modulius. Šis modulis suteikia nešiojamąjį būdą naudoti nuo operacinės sistemos priklausančias funkcijas.

The *os* ir *os.path* moduliuose yra daug funkcijų, skirtų sąveikai su failų sistema.

Python-OS-Module funkcijos

Čia aptarsime kai kurias svarbias Python OS modulio funkcijas:



  • Dabartinio darbo katalogo tvarkymas
  • Katalogo kūrimas
  • Failų ir katalogų sąrašas naudojant Python
  • Katalogo arba failų ištrynimas naudojant Python

Dabartinio darbo katalogo tvarkymas

Apsvarstykite Dabartinis darbo katalogas (CWD) kaip aplanką, kuriame veikia Python. Kai failai iškviečiami tik jų vardu, Python daro prielaidą, kad ji prasideda CWD, o tai reiškia, kad nuoroda tik į pavadinimą bus sėkminga tik tuo atveju, jei failas yra Python CWD.

Pastaba: Aplankas, kuriame veikia Python scenarijus, yra žinomas kaip dabartinis katalogas. Tai nėra kelias, kuriame yra Python scenarijus.

Dabartinio darbo katalogo gavimas

Norėdami gauti dabartinio darbo katalogo vietą os.getcwd() yra naudojamas.

Pavyzdys: Šis kodas naudoja os'> modulį, kad gautumėte ir išspausdintumėte dabartinį Python scenarijaus darbo katalogą (CWD). Jis nuskaito CWD naudodamas os.getcwd()'> ir tada išspausdina jį į konsolę.

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

Išvestis:

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

Dabartinio darbo katalogo keitimas

Norėdami pakeisti esamą darbo katalogą (CWD) os.chdir() naudojamas metodas. Šis metodas pakeičia CWD į nurodytą kelią. Kaip naują katalogo kelią reikia tik vieno argumento.

Pastaba: Dabartinis darbo katalogas yra aplankas, kuriame veikia Python scenarijus.

Pavyzdys: Kodas patikrina ir rodo dabartinį darbo katalogą (CWD) du kartus: prieš ir po to, kai pakeičiamas katalogas vienu lygiu, naudojant os.chdir('../')> . Jame pateikiamas paprastas pavyzdys, kaip dirbti su dabartiniu Python darbiniu katalogu.

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

Išvestis:

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

Katalogo kūrimas

OS modulyje galimi įvairūs katalogo kūrimo būdai. Šitie yra -

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

Naudojant os.mkdir()

Naudojant os.mkdir() Python metodas naudojamas sukurti katalogą pavadinimu kelias su nurodytu skaitiniu režimu. Šis metodas iškelia FileExistsError, jei kuriamas katalogas jau yra.

Pavyzdys: Šis kodas sukuria du katalogus: techcodeview.com viduje D:/Pycharm projektai/ katalogas ir Geeks viduje D:/Pycharm projektai katalogas.

  • Pirmasis katalogas sukuriamas naudojantos.mkdir()>metodas nenurodant režimo.
  • Antrasis katalogas sukuriamas naudojant tą patį metodą, tačiau tam tikru režimu ( 0o666> ) yra pateikta, kuri suteikia skaitymo ir rašymo leidimus.
  • Tada kodas spausdina pranešimus, rodančius, kad katalogai buvo sukurti.
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)>

Išvestis:

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

Naudojant os.makedirs()

os.makedirs() Python metodas naudojamas rekursiniam katalogui sukurti. Tai reiškia, kad kuriant lapų katalogą, jei trūksta kokio nors vidutinio lygio katalogo, os.makedirs() metodas juos visus sukurs.

Pavyzdys: Šis kodas sukuria du katalogus, Nikhilas ir c , skirtinguose pirminiuose kataloguose. Jis naudojaos.makedirs>funkcija, užtikrinanti, kad pirminiai katalogai būtų sukurti, jei jų nėra.

Jis taip pat nustato leidimus c katalogas. Kodas spausdina pranešimus, patvirtinančius šių katalogų sukūrimą

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

Išvestis:

Directory 'Nikhil' created Directory 'c' created>

Failų ir katalogų sąrašas naudojant Python

Yra os.listdir() Python metodas naudojamas norint gauti visų failų ir katalogų sąrašą nurodytame kataloge. Jei nenurodysime jokio katalogo, bus grąžintas failų ir katalogų sąrašas dabartiniame darbiniame kataloge.

Pavyzdys: Šiame kode pateikiami visi šakniniame kataloge esantys failai ir katalogai (/) . Jis naudojaos.listdir>funkcija, kad gautų failų ir katalogų sąrašą nurodytame kelyje ir išspausdintų rezultatus.

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

Išvestis:

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

Katalogo arba failų ištrynimas naudojant Python

OS modulis pateikia skirtingus būdus, kaip pašalinti katalogus ir failus iš Python. Šitie yra -

  • Naudojant os.remove()
  • Naudojant os.rmdir()

Naudojant os.remove() metodą

os.remove() Python metodas naudojamas failo keliui pašalinti arba ištrinti. Šis metodas negali pašalinti arba ištrinti katalogo. Jei nurodytas kelias yra katalogas, metodu bus iškelta OSError.

Pavyzdys: Tarkime, aplanke esantis failas yra:

Šis kodas pašalina failą pavadinimu file1.txt iš nurodytos vietos D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Jis naudojaos.remove>funkcija ištrinti failą nurodytu keliu.

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

Išvestis:


Naudojant os.rmdir()

os.rmdir() Python metodas naudojamas tuščiam katalogui pašalinti arba ištrinti. OSError bus iškeltas, jei nurodytas kelias nėra tuščias katalogas.

Pavyzdys: Tarkime, kad katalogai yra

Šiuo kodu bandoma pašalinti katalogą pavadinimu Geeks esantis adresu D:/Pycharm projektai/ .

Jis naudojaos.rmdir>funkcija ištrinti katalogą. Jei katalogas tuščias, jis bus pašalintas. Jei jame yra failų arba pakatalogių, galite susidurti su klaida.

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

Išvestis:

Dažniausiai naudojamos funkcijos

Naudojant os.name funkciją

Ši funkcija suteikia importuoto nuo operacinės sistemos priklausančio modulio pavadinimą . Šiuo metu užregistruoti šie pavadinimai: „posix“, „nt“, „os2“, „ce“, „java“ ir „riscos“.

Python
import os print(os.name)>

Išvestis:

posix>

Pastaba: Tai gali duoti skirtingą išvestį naudojant skirtingus interpretatorius, pvz., „posix“, kai paleidžiate kodą čia.

Naudojant os.error funkciją

Visos šio modulio funkcijos pakeliamos OSE klaida netinkamų ar nepasiekiamų failų pavadinimų ir kelių ar kitų argumentų, kurių tipas yra teisingas, bet kurių operacinė sistema nepriima, atveju. os.error yra integruotos OSError išimties slapyvardis.

Šis kodas skaito failo pavadinimu turinį „GFG.txt“ . Jis naudoja a pabandyk... nebent blokuoti galimas klaidas, ypač „ IO klaida gali kilti problemų skaitant failą.

Jei įvyksta klaida, jis išspausdins pranešimą, kuriame sakoma: Skaitymo problema: GFG.txt.

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

Išvestis:

Problem reading: GFG.txt>

Naudojant os.popen() funkciją

Šis metodas atidaro vamzdį į komandą arba iš jos. Grąžinamą reikšmę galima nuskaityti arba įrašyti priklausomai nuo to, ar režimas yra „r“ arba „w“ .
Sintaksė:

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

Parametrų režimas ir bufsize nėra būtini parametrai, jei nenurodyta, režimui taikomas numatytasis „r“.

Šis kodas atidaro failą pavadinimu „GFG.txt“ rašymo režimu, rašo Sveiki prie jo, tada nuskaito ir išspausdina jo turinį. Panaudojimas os.popen> nerekomenduojama, o šioms užduotims atlikti naudojamos standartinės failų operacijos.

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

Išvestis:

Hello>

Pastaba: Popen() išvestis nebus rodoma, bus tiesioginiai failo pakeitimai.

Naudojant os.close() funkciją

Uždaryti failo aprašą fd. Failas, atidarytas naudojant open(), gali būti uždarytas tik uždarant (). Tačiau failas, atidarytas naudojant os.popen(), gali būti uždarytas su close() arba os.close() . Jei bandytume uždaryti failą, atidarytą naudojant open(), naudodami os.close(), Python išmes TypeError.

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

Išvestis:

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

Pastaba: Ta pati klaida gali būti nerodoma dėl neegzistuojančio failo arba leidimo privilegijos.

Naudojant os.rename() funkciją

Failas old.txt gali būti pervardytas į new.txt naudojant funkciją os.rename() . Failo pavadinimas pasikeičia tik tuo atveju, jei failas egzistuoja ir vartotojas turi pakankamai teisių keisti failą.

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

Išvestis:

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

Egzistuoja failo pavadinimas GFG.txt, todėl pirmą kartą panaudojus os.rename(), failas pervardijamas.

Antrą kartą iškvietus funkciją os.rename(), egzistuoja failas New.txt, o ne GFG.txt, todėl Python išmeta FileNotFoundError.

Naudojant os.remove() funkciją

Naudodami Os modulį galime pašalinti failą iš mūsų sistemos naudodami os.remove() metodas. Norėdami pašalinti failą, kaip parametrą turime perduoti failo pavadinimą.

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

OS modulis suteikia mums abstrakcijos sluoksnį tarp mūsų ir operacinės sistemos.

Kai dirbame su os modulis visada nurodykite absoliutų kelią, priklausomai nuo operacinės sistemos, kodas gali būti paleistas bet kurioje OS, bet mes turime tiksliai pakeisti kelią. Jei bandysite pašalinti failą, kurio nėra, gausite „FileNotFoundError“. .

Naudojant os.path.exists() funkciją

Šis metodas patikrins, ar failas egzistuoja, ar ne, perduodamas failo pavadinimą kaip parametrą. OS modulis turi submodulį, pavadintą PATH, kurį naudodami galime atlikti daug daugiau funkcijų.

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

Išvestis:

False>

Kaip ir aukščiau pateiktame kode, failas neegzistuoja, jis duos išvestį False. Jei failas egzistuoja, jis duos mums išvestį True.

Naudojant os.path.getsize() funkciją

Į os.path.getsize( ) funkcija, python pateiks failo dydį baitais. Norėdami naudoti šį metodą, kaip parametrą turime perduoti failo pavadinimą.

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

Išvestis:

rasti eilutėje c++
Size of the file is 192 bytes.>