The Modul OS în Python oferă funcții pentru interacțiunea cu sistemul de operare. Sistemul de operare se înscrie în modulele utilitare standard ale Python. Acest modul oferă o modalitate portabilă de utilizare a funcționalității dependente de sistemul de operare.
The *os* și *os.path* modulele includ multe funcții pentru a interacționa cu sistemul de fișiere.
Funcții Python-OS-Module
Aici vom discuta câteva funcții importante ale modulului OS Python:
- Gestionarea Directorului de lucru curent
- Crearea unui Director
- Listarea fișierelor și directoarelor cu Python
- Ștergerea directorului sau a fișierelor folosind Python
Gestionarea Directorului de lucru curent
Considera Director de lucru curent (CWD) ca un folder, unde funcționează Python. Ori de câte ori fișierele sunt numite numai după numele lor, Python presupune că începe în CWD, ceea ce înseamnă că referința numai pentru nume va avea succes numai dacă fișierul se află în CWD-ul Python.
Notă: Dosarul în care rulează scriptul Python este cunoscut sub numele de Directorul curent. Aceasta nu este calea unde se află scriptul Python.
Obținerea directorului de lucru curent
Pentru a obține locația directorului de lucru curent os.getcwd() este folosit.
Exemplu: Acest cod folosește ' os'> modul pentru a obține și tipări directorul de lucru curent (CWD) al scriptului Python. Acesta preia CWD folosind ' os.getcwd()'> apoi îl imprimă pe consolă.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Ieșire:
Current working directory: /home/nikhil/Desktop/gfg>
Schimbarea directorului de lucru curent
Pentru a schimba directorul de lucru curent (CWD) os.chdir() se foloseste metoda. Această metodă schimbă CWD într-o cale specificată. Este nevoie doar de un singur argument ca o nouă cale de director.
Notă: Directorul de lucru curent este folderul în care operează scriptul Python.
Exemplu: Codul verifică și afișează directorul de lucru curent (CWD) de două ori: înainte și după schimbarea directorului cu un nivel în sus, folosind os.chdir('../')> . Acesta oferă un exemplu simplu despre cum să lucrați cu directorul de lucru curent în Python.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Ieșire:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Crearea unui Director
Există diferite metode disponibile în modulul OS pentru a crea un director. Acestea sunt -
- os.mkdir()
- os.makedirs()
Folosind os.mkdir()
Prin utilizarea os.mkdir() metoda în Python este folosită pentru a crea un director numit cale cu modul numeric specificat. Această metodă generează FileExistsError dacă directorul care trebuie creat există deja.
Exemplu: Acest cod creează două directoare: techcodeview.com în cadrul D:/Proiecte Pycharm/ director și Tocilari în cadrul D:/Proiecte Pycharm director.
- Primul director este creat folosind
os.mkdir()>metoda fără a specifica modul. - Al doilea director este creat folosind aceeași metodă, dar un mod specific (
0o666>) este furnizat, care acordă permisiuni de citire și scriere. - Codul tipărește apoi mesaje pentru a indica faptul că directoarele au fost create.
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)> Ieșire:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Folosind os.makedirs()
os.makedirs() metoda din Python este folosită pentru a crea un director recursiv. Aceasta înseamnă că, în timp ce faceți directorul frunze, dacă lipsește vreun director de nivel intermediar, metoda os.makedirs() le va crea pe toate.
Exemplu: Acest cod creează două directoare, Nikhil și c , în diferite directoare părinte. Acesta foloseșteos.makedirs>funcție pentru a se asigura că directoarele părinte sunt create dacă acestea nu există.
De asemenea, stabilește permisiunile pentru c director. Codul imprimă mesaje pentru a confirma crearea acestor directoare
Piton 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)> Ieșire:
Directory 'Nikhil' created Directory 'c' created>
Listarea fișierelor și directoarelor cu Python
Există os.listdir() metoda din Python este folosită pentru a obține lista tuturor fișierelor și directoarelor din directorul specificat. Dacă nu specificăm niciun director, atunci va fi returnată lista fișierelor și directoarelor din directorul de lucru curent.
Exemplu: Acest cod listează toate fișierele și directoarele din directorul rădăcină (/) . Acesta foloseșteos.listdir>pentru a obține lista de fișiere și directoare din calea specificată și apoi tipăriți rezultatele.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Ieșire:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Ștergerea directorului sau a fișierelor folosind Python
Modulul OS oferă diferite metode pentru eliminarea directoarelor și fișierelor din Python. Acestea sunt -
- Folosind os.remove()
- Folosind os.rmdir()
Folosind metoda os.remove().
os.remove() metoda din Python este folosită pentru a elimina sau șterge o cale de fișier. Această metodă nu poate elimina sau șterge un director. Dacă calea specificată este un director, atunci OSError va fi generată de metodă.
Exemplu: Să presupunem că fișierul conținut în folder este:

Acest cod elimină un fișier numit file1.txt din locația specificată D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Acesta foloseșteos.remove>funcția de ștergere a fișierului la calea specificată.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Ieșire:

Folosind os.rmdir()
os.rmdir() metoda din Python este folosită pentru a elimina sau șterge un director gol. OSError va fi generată dacă calea specificată nu este un director gol.
Exemplu: Să presupunem că directoarele sunt

Acest cod încearcă să elimine un director numit Tocilari situat la D:/Proiecte Pycharm/ .
Acesta foloseșteos.rmdir>funcția de ștergere a directorului. Dacă directorul este gol, acesta va fi eliminat. Dacă conține fișiere sau subdirectoare, este posibil să întâmpinați o eroare.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Ieșire:

Funcții utilizate în mod obișnuit
Folosind funcția os.name
Această funcție oferă numele modulului dependent de sistemul de operare importat . În prezent au fost înregistrate următoarele nume: „posix”, „nt”, „os2”, „ce”, „java” și „riscos”.
Piton import os print(os.name)>
Ieșire:
posix>
Notă: Poate da rezultate diferite pe interpreți diferiți, cum ar fi „posix” atunci când rulați codul aici.
Utilizarea funcției os.error
Toate funcțiile din acest modul cresc OSError în cazul numelor și căilor de fișiere invalide sau inaccesibile sau alte argumente care au tipul corect, dar care nu sunt acceptate de sistemul de operare. os.error este un alias pentru excepția OSError încorporată.
Acest cod citește conținutul unui fișier numit „GFG.txt” . Folosește a ' incearca...mai putin ' bloc pentru a gestiona erorile potențiale, în special „ IOEroare ' acest lucru poate apărea dacă există o problemă la citirea fișierului.
Dacă apare o eroare, va imprima un mesaj care spune: Problemă la citire: GFG.txt.
Piton import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Ieșire:
Problem reading: GFG.txt>
Folosind funcția os.popen().
Această metodă deschide o conductă către sau de la comandă. Valoarea returnată poate fi citită sau scrisă în funcție de modul în care este „r” sau „w” .
Sintaxă:
os.popen(command[, mode[, bufsize]])>
Parametrii mode și bufsize nu sunt parametri necesari, dacă nu sunt furnizați, implicit „r” este luat pentru mod.
Acest cod deschide un fișier numit „GFG.txt” în modul de scriere, scrie Buna ziua la acesta, apoi citește și imprimă conținutul acestuia. Utilizarea os.popen> nu este recomandată, iar operațiunile standard cu fișiere sunt utilizate pentru aceste sarcini.
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')> Ieșire:
Hello>
Notă: Ieșirea pentru popen() nu va fi afișată, ar exista modificări directe în fișier.
Folosind funcția os.close().
Închideți descriptorul de fișier fd. Un fișier deschis folosind open(), poate fi închis doar prin close(). Dar fișierul deschis prin os.popen(), poate fi închis cu close() sau os.close() . Dacă încercăm să închidem un fișier deschis cu open(), folosind os.close(), Python ar arunca TypeError.
Piton import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Ieșire:
Traceback (most recent call last): File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>
Notă: Este posibil să nu fie aruncată aceeași eroare, din cauza fișierului inexistent sau a privilegiului de permisiune.
Folosind funcția os.rename().
Un fișier old.txt poate fi redenumit în new.txt, folosind funcția os.rename() . Numele fișierului se schimbă numai dacă fișierul există și utilizatorul are permisiunea de privilegii suficiente pentru a schimba fișierul.
Piton import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Ieșire:
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'>>>Există un nume de fișier GFG.txt, astfel încât atunci când os.rename() este folosit pentru prima dată, fișierul este redenumit.
La apelarea funcției os.rename() a doua oară, fișierul New.txt există și nu GFG.txt, astfel încât Python aruncă FileNotFoundError.
Folosind funcția os.remove().
Folosind modulul Os, putem elimina un fișier din sistemul nostru folosind os.remove() metodă. Pentru a elimina un fișier trebuie să trecem numele fișierului ca parametru.
Pitonimport os #importing os module. os.remove('file_name.txt') #removing the file.>Modulul OS ne oferă un strat de abstractizare între noi și sistemul de operare.
Când lucrăm cu os modulul specifică întotdeauna calea absolută, în funcție de sistemul de operare, codul poate rula pe orice sistem de operare, dar trebuie să schimbăm calea exact. Dacă încercați să eliminați un fișier care nu există, veți obține FileNotFoundError .
Folosind funcția os.path.exists().
Această metodă va verifica dacă un fișier există sau nu prin trecerea numelui fișierului ca parametru. Modulul OS are un sub-modul numit PATH prin care putem realiza multe mai multe funcții.
Pitonimport os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)>Ieșire:
Ca și în codul de mai sus, fișierul nu există, va da rezultate False. Dacă fișierul există, ne va da rezultatul True. Folosind funcția os.path.getsize().
În os.path.getsize( ), python ne va oferi dimensiunea fișierului în octeți. Pentru a folosi această metodă trebuie să trecem numele fișierului ca parametru.
Pitonimport os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')>Ieșire:
formatator de șiruriSize of the file is 192 bytes.>