logo

OS modulis Python ar piemēriem

The OS modulis Python nodrošina funkcijas mijiedarbībai ar operētājsistēmu. OS ietilpst Python standarta utilīta moduļos. Šis modulis nodrošina pārnēsājamu veidu, kā izmantot no operētājsistēmas atkarīgu funkcionalitāti.

The *os* un *os.path* moduļi ietver daudzas funkcijas mijiedarbībai ar failu sistēmu.

Python-OS-Moduļa funkcijas

Šeit mēs apspriedīsim dažas svarīgas Python OS moduļa funkcijas:



  • Pašreizējā darba direktorija apstrāde
  • Direktorija izveide
  • Failu un direktoriju uzskaitīšana, izmantojot Python
  • Direktorija vai failu dzēšana, izmantojot Python

Pašreizējā darba direktorija apstrāde

Apsveriet Pašreizējais darba direktorijs (CWD) kā mapi, kurā darbojas Python. Ikreiz, kad faili tiek izsaukti tikai pēc to nosaukuma, Python pieņem, ka tas sākas CWD, kas nozīmē, ka atsauce tikai uz nosaukumu būs veiksmīga tikai tad, ja fails atrodas Python CWD.

Piezīme: Mape, kurā darbojas Python skripts, ir pazīstama kā Pašreizējais direktorijs. Šis nav ceļš, kur atrodas Python skripts.

Pašreizējā darba direktorija iegūšana

Lai iegūtu pašreizējā darba direktorija atrašanās vietu os.getcwd() tiek izmantots.

Piemērs: Šis kods izmanto ' os'> modulis, lai iegūtu un izdrukātu Python skripta pašreizējo darba direktoriju (CWD). Tas izgūst CWD, izmantojot ' os.getcwd()'> un pēc tam izdrukā to konsolē.

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

Izvade:

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

Pašreizējā darba direktorija maiņa

Lai mainītu pašreizējo darba direktoriju (CWD) os.chdir() tiek izmantota metode. Šī metode maina CWD uz noteiktu ceļu. Tas aizņem tikai vienu argumentu kā jaunu direktorijas ceļu.

Piezīme: Pašreizējais darba direktorijs ir mape, kurā darbojas Python skripts.

Piemērs: Kods pārbauda un parāda pašreizējo darba direktoriju (CWD) divas reizes: pirms un pēc direktorija maiņas vienu līmeni uz augšu, izmantojot os.chdir('../')> . Tas sniedz vienkāršu piemēru, kā strādāt ar pašreizējo Python darba direktoriju.

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

Izvade:

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

Direktorija izveide

OS modulī ir pieejamas dažādas direktorijas izveides metodes. Šie ir -

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

Izmantojot os.mkdir()

Izmantojot os.mkdir() Python metode tiek izmantota, lai izveidotu direktoriju ar nosaukumu ceļš ar norādīto ciparu režīmu. Šī metode rada FileExistsError, ja izveidojamais direktorijs jau pastāv.

Piemērs: Šis kods izveido divus direktorijus: techcodeview.com ietvaros D:/Pycharm projekti/ direktoriju un Geeks ietvaros D:/Pycharm projekti direktoriju.

  • Pirmais direktorijs tiek izveidots, izmantojotos.mkdir()>metodi, nenorādot režīmu.
  • Otrais direktorijs tiek izveidots, izmantojot to pašu metodi, bet noteiktu režīmu ( 0o666> ) tiek nodrošināta, kas piešķir lasīšanas un rakstīšanas atļaujas.
  • Pēc tam kods izdrukā ziņojumus, kas norāda, ka direktoriji ir izveidoti.
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)>

Izvade:

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

Izmantojot os.makedirs()

os.makedirs() Python metode tiek izmantota, lai rekursīvi izveidotu direktoriju. Tas nozīmē, ka, veidojot lapu direktoriju, ja trūkst kāda vidēja līmeņa direktorija, os.makedirs() metode tos visus izveidos.

Piemērs: Šis kods izveido divus direktorijus, Nikhils un c , dažādos vecākdirektorijos. Tas izmantoos.makedirs>funkcija, lai nodrošinātu, ka tiek izveidoti vecākdirektoriji, ja tie neeksistē.

Tas arī nosaka atļaujas c direktoriju. Kods izdrukā ziņojumus, lai apstiprinātu šo direktoriju izveidi

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

Izvade:

Directory 'Nikhil' created Directory 'c' created>

Failu un direktoriju uzskaitīšana, izmantojot Python

Tur ir os.listdir() Python metode tiek izmantota, lai iegūtu visu norādītajā direktorijā esošo failu un direktoriju sarakstu. Ja mēs nenorādīsim nevienu direktoriju, tiks atgriezts pašreizējā darba direktorija failu un direktoriju saraksts.

Piemērs: Šajā kodā ir uzskaitīti visi saknes direktorijā esošie faili un direktoriji (/) . Tas izmantoos.listdir>funkciju, lai iegūtu failu un direktoriju sarakstu norādītajā ceļā un pēc tam izdrukātu rezultātus.

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

Izvade:

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

Direktorija vai failu dzēšana, izmantojot Python

OS modulis nodrošina dažādas metodes direktoriju un failu noņemšanai programmā Python. Šie ir -

  • Izmantojot os.remove()
  • Izmantojot os.rmdir()

Izmantojot os.remove() metodi

os.remove() Python metode tiek izmantota, lai noņemtu vai dzēstu faila ceļu. Šī metode nevar noņemt vai izdzēst direktoriju. Ja norādītais ceļš ir direktorijs, metode aktivizēs OSError.

Piemērs: Pieņemsim, ka mapē esošais fails ir:

Šis kods noņem failu ar nosaukumu file1.txt no norādītās vietas D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Tas izmantoos.remove>funkcija, lai izdzēstu failu norādītajā ceļā.

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

Izvade:


Izmantojot os.rmdir()

os.rmdir() Python metode tiek izmantota, lai noņemtu vai izdzēstu tukšu direktoriju. OSError tiks parādīts, ja norādītais ceļš nav tukšs direktorijs.

Piemērs: Pieņemsim, ka direktoriji ir

Šis kods mēģina noņemt direktoriju ar nosaukumu Geeks Atrodas D:/Pycharm projekti/ .

Tas izmantoos.rmdir>funkcija, lai izdzēstu direktoriju. Ja direktorijs ir tukšs, tas tiks noņemts. Ja tajā ir faili vai apakšdirektoriji, var rasties kļūda.

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

Izvade:

Bieži lietotās funkcijas

Izmantojot funkciju os.name

Šī funkcija piešķir importētā operētājsistēmas atkarīgā moduļa nosaukumu . Pašlaik ir reģistrēti šādi nosaukumi: 'posix', 'nt', 'os2', 'ce', 'java' un 'riscos'.

Python
import os print(os.name)>

Izvade:

posix>

Piezīme: Tas var dot atšķirīgu izvadi dažādos tulkos, piemēram, “posix”, kad palaižat kodu šeit.

Funkcijas os.error izmantošana

Visas šī moduļa funkcijas tiek paaugstinātas OSERror ja ir nederīgi vai nepieejami failu nosaukumi un ceļi, vai citi argumenti, kuriem ir pareizais tips, bet operētājsistēma tos nepieņem. os.error ir iebūvētā OSError izņēmuma aizstājvārds.

Šis kods nolasa faila ar nosaukumu saturu “GFG.txt” . Tas izmanto a ' mēģināt... izņemot ' bloks, lai apstrādātu iespējamās kļūdas, jo īpaši IOError ' kas var rasties, ja rodas problēmas ar faila lasīšanu.

Ja rodas kļūda, tas izdrukās ziņojumu, kurā teikts: Lasīšanas problēma: GFG.txt.

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

Izvade:

Problem reading: GFG.txt>

Izmantojot funkciju os.popen()

Šī metode atver cauruli uz komandu vai no tās. Atgriešanās vērtību var nolasīt vai rakstīt atkarībā no tā, vai režīms ir “r” vai “w” .
Sintakse:

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

Parametru režīms un bufsize nav nepieciešami parametri, ja tas nav norādīts, režīmam tiek izmantots noklusējuma “r”.

Šis kods atver failu ar nosaukumu “GFG.txt” rakstīšanas režīmā, raksta Sveiki un pēc tam nolasa un izdrukā tā saturu. Pielietojums os.popen> nav ieteicams, un šiem uzdevumiem tiek izmantotas standarta failu darbības.

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

Izvade:

Hello>

Piezīme: Popen() izvade netiks rādīta, failā tiks veiktas tiešas izmaiņas.

Izmantojot funkciju os.close()

Aizvērt faila deskriptoru fd. Failu, kas atvērts, izmantojot open(), var aizvērt tikai ar aizvēršanas () taustiņu. Bet failu, kas atvērts, izmantojot os.popen(), var aizvērt ar close() vai os.close() . Ja mēs mēģinātu aizvērt failu, kas atvērts ar open(), izmantojot os.close(), Python izmestu TypeError.

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

Izvade:

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

Piezīme: Tāda pati kļūda var netikt parādīta neesoša faila vai atļaujas privilēģijas dēļ.

Funkcijas os.rename() izmantošana

Failu old.txt var pārdēvēt par new.txt, izmantojot funkciju os.rename() . Faila nosaukums mainās tikai tad, ja fails eksistē un lietotājam ir pietiekamas tiesības mainīt failu.

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

Izvade:

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

Eksistē faila nosaukums GFG.txt, tādēļ, ja os.rename() tiek izmantots pirmo reizi, fails tiek pārdēvēts.

Otro reizi izsaucot funkciju os.rename(), pastāv fails New.txt, nevis GFG.txt, tādējādi Python izdod FileNotFoundError.

Izmantojot funkciju os.remove()

Izmantojot Os moduli, mēs varam noņemt failu no mūsu sistēmas, izmantojot os.remove() metodi. Lai noņemtu failu, mums kā parametrs jānodod faila nosaukums.

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

OS modulis nodrošina mums abstrakcijas slāni starp mums un operētājsistēmu.

Kad mēs strādājam ar os modulis vienmēr norāda absolūto ceļu atkarībā no operētājsistēmas, kods var darboties jebkurā operētājsistēmā, taču mums ir precīzi jāmaina ceļš. Ja mēģināsit noņemt failu, kas neeksistē, jūs to saņemsit FileNotFoundError .

Izmantojot funkciju os.path.exists()

Šī metode pārbaudīs, vai fails pastāv, kā parametru nosūtot faila nosaukumu. OS modulim ir apakšmodulis ar nosaukumu PATH, ar kuru mēs varam veikt daudz vairāk funkciju.

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

Izvade:

False>

Tāpat kā iepriekš minētajā kodā, fails neeksistē, tas dos izvadi False. Ja fails pastāv, tas dos mums izvadi True.

Izmantojot funkciju os.path.getsize()

In os.path.getsize( ) funkciju, python mums dos faila lielumu baitos. Lai izmantotu šo metodi, mums kā parametrs jānodod faila nosaukums.

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

Izvade:

java virknes pievienošanās
Size of the file is 192 bytes.>