De OS-modul i Python gir funksjoner for samhandling med operativsystemet. OS kommer under Pythons standard verktøymoduler. Denne modulen gir en bærbar måte å bruke operativsystemavhengig funksjonalitet på.
De *os* og *os.path* moduler inkluderer mange funksjoner for å samhandle med filsystemet.
Python-OS-modulfunksjoner
Her vil vi diskutere noen viktige funksjoner til Python os-modulen:
- Håndtering av gjeldende arbeidskatalog
- Opprette en katalog
- Liste ut filer og kataloger med Python
- Sletting av katalog eller filer ved hjelp av Python
Håndtering av gjeldende arbeidskatalog
Ta i betraktning Gjeldende arbeidskatalog (CWD) som en mappe, der Python opererer. Når filene bare kalles ved navn, antar Python at den starter i CWD, noe som betyr at kun navnereferanse vil være vellykket bare hvis filen er i Pythons CWD.
Merk: Mappen der Python-skriptet kjører er kjent som Current Directory. Dette er ikke banen der Python-skriptet er plassert.
Få den gjeldende arbeidskatalogen
For å finne plasseringen til gjeldende arbeidskatalog os.getcwd() benyttes.
Eksempel: Denne koden bruker ' os'> modul for å hente og skrive ut gjeldende arbeidskatalog (CWD) til Python-skriptet. Den henter CWD ved hjelp av ' os.getcwd()'> og skriver den deretter ut til konsollen.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Produksjon:
Current working directory: /home/nikhil/Desktop/gfg>
Endre gjeldende arbeidskatalog
For å endre gjeldende arbeidskatalog (CWD) os.chdir() metoden brukes. Denne metoden endrer CWD til en spesifisert bane. Det tar bare et enkelt argument som en ny katalogbane.
Merk: Den gjeldende arbeidskatalogen er mappen der Python-skriptet opererer.
Eksempel: Koden sjekker og viser gjeldende arbeidskatalog (CWD) to ganger: før og etter endring av katalogen opp ett nivå ved å bruke os.chdir('../')> . Den gir et enkelt eksempel på hvordan du arbeider med gjeldende arbeidskatalog i Python.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Produksjon:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Opprette en katalog
Det er forskjellige metoder tilgjengelig i OS-modulen for å lage en katalog. Disse er -
- os.mkdir()
- os.makedirs()
Bruker os.mkdir()
Ved bruk av os.mkdir() metoden i Python brukes til å lage en katalog kalt bane med den angitte numeriske modusen. Denne metoden øker FileExistsError hvis katalogen som skal opprettes allerede eksisterer.
Eksempel: Denne koden lager to kataloger: techcodeview.com innen D:/Pycharm-prosjekter/ katalog og Geeks innen D:/Pycharm-prosjekter katalog.
- Den første katalogen opprettes ved hjelp av
os.mkdir()>metode uten å spesifisere modusen. - Den andre katalogen er opprettet ved hjelp av samme metode, men en spesifikk modus (
0o666>) er gitt, som gir lese- og skrivetillatelser. - Koden skriver deretter ut meldinger for å indikere at katalogene er opprettet.
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)> Produksjon:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Bruker os.makedirs()
os.makedirs() metoden i Python brukes til å lage en katalog rekursivt. Det betyr at mens du lager bladkatalog hvis noen mellomnivåkatalog mangler, vil os.makedirs()-metoden lage dem alle.
Eksempel: Denne koden lager to kataloger, Nikhil og c , i forskjellige overordnede kataloger. Den brukeros.makedirs>funksjon for å sikre at overordnede kataloger opprettes hvis de ikke eksisterer.
Den angir også tillatelsene for c katalog. Koden skriver ut meldinger for å bekrefte opprettelsen av disse katalogene
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)> Produksjon:
Directory 'Nikhil' created Directory 'c' created>
Liste ut filer og kataloger med Python
Det er os.listdir() metoden i Python brukes til å få listen over alle filer og kataloger i den angitte katalogen. Hvis vi ikke spesifiserer noen katalog, vil listen over filer og kataloger i gjeldende arbeidskatalog bli returnert.
Eksempel: Denne koden viser alle filene og katalogene i rotkatalogen (/) . Den brukeros.listdir>funksjon for å hente listen over filer og kataloger i den angitte banen og deretter skrive ut resultatene.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Produksjon:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Sletting av katalog eller filer ved hjelp av Python
OS-modulen gir forskjellige metoder for å fjerne kataloger og filer i Python. Disse er -
- Bruke os.remove()
- Bruker os.rmdir()
Bruker os.remove()-metoden
os.remove() metoden i Python brukes til å fjerne eller slette en filbane. Denne metoden kan ikke fjerne eller slette en katalog. Hvis den angitte banen er en katalog, vil OSError økes av metoden.
Eksempel: Anta at filen i mappen er:

Denne koden fjerner en fil kalt file1.txt fra den angitte plasseringen D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Den brukeros.remove>funksjon for å slette filen på den angitte banen.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Produksjon:

Bruker os.rmdir()
os.rmdir() metoden i Python brukes til å fjerne eller slette en tom katalog. OSError vil oppstå hvis den angitte banen ikke er en tom katalog.
Eksempel: Anta at katalogene er

Denne koden prøver å fjerne en katalog som heter Geeks ligger ved D:/Pycharm-prosjekter/ .
Den brukeros.rmdir>funksjon for å slette katalogen. Hvis katalogen er tom, vil den bli fjernet. Hvis den inneholder filer eller underkataloger, kan det oppstå en feil.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Produksjon:

Vanlig brukte funksjoner
Bruker os.navn-funksjonen
Denne funksjonen gir navnet på den operativsystemavhengige modulen som er importert . Følgende navn er for øyeblikket registrert: 'posix', 'nt', 'os2', 'ce', 'java' og 'riscos'.
Python import os print(os.name)>
Produksjon:
posix>
Merk: Det kan gi ulik utgang på forskjellige tolker, for eksempel 'posix' når du kjører koden her.
Bruker os.error-funksjonen
Alle funksjoner i denne modulen øker OSFeil i tilfelle ugyldige eller utilgjengelige filnavn og stier, eller andre argumenter som har riktig type, men som ikke aksepteres av operativsystemet. os.error er et alias for innebygd OSError-unntak.
Denne koden leser innholdet i en fil med navn «GFG.txt» . Den bruker en ' prøv ... bortsett fra ' blokk for å håndtere potensielle feil, spesielt IOFeil ' som kan oppstå hvis det er et problem med å lese filen.
Hvis det oppstår en feil, vil den skrive ut en melding som sier: Problem med lesing: GFG.txt.
Python import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Produksjon:
Problem reading: GFG.txt>
Bruke os.popen() funksjonen
Denne metoden åpner et rør til eller fra kommando. Returverdien kan leses eller skrives avhengig av om modusen er 'r' eller 'w' .
Syntaks:
os.popen(command[, mode[, bufsize]])>
Parametermodus og bufsize er ikke nødvendige parametere, hvis de ikke er oppgitt, tas standard 'r' for modus.
Denne koden åpner en fil med navnet «GFG.txt» i skrivemodus, skriver Hallo til den, og deretter leser og skriver ut innholdet. Bruken av os.popen> anbefales ikke, og standard filoperasjoner brukes for disse oppgavene.
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')> Produksjon:
Hello>
Merk: Utdata for popen() vil ikke bli vist, det vil være direkte endringer i filen.
Bruke os.close() funksjonen
Lukk filbeskrivelse fd. En fil som åpnes med open(), kan kun lukkes med close(). Men fil åpnet gjennom os.popen(), kan lukkes med close() eller os.close() . Hvis vi prøver å lukke en fil åpnet med open(), ved å bruke os.close(), ville Python kaste TypeError.
Python import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Produksjon:
Traceback (most recent call last): File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>
Merk: Det kan hende at den samme feilen ikke vises på grunn av den ikke-eksisterende filen eller tillatelsesrettigheten.
Bruke os.rename() funksjonen
En fil old.txt kan omdøpes til new.txt ved å bruke funksjonen os.rename() . Navnet på filen endres bare hvis filen eksisterer og brukeren har tilstrekkelig rettighetstillatelse til å endre filen.
Python import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Produksjon:
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' ->'Ny.txt'>
Et filnavn GFG.txt eksisterer, så når os.rename() brukes første gang, får filen nytt navn.
Ved å kalle funksjonen os.rename() andre gang, eksisterer filen New.txt og ikke GFG.txt og dermed kaster Python FileNotFoundError.
Bruke os.remove() funksjonen
Ved å bruke Os-modulen kan vi fjerne en fil i systemet vårt ved å bruke os.remove() metode. For å fjerne en fil må vi sende navnet på filen som en parameter.
Python import os #importing os module. os.remove('file_name.txt') #removing the file.> OS-modulen gir oss et lag av abstraksjon mellom oss og operativsystemet.
Når vi jobber med os modul spesifiser alltid den absolutte banen avhengig av operativsystemet, koden kan kjøres på et hvilket som helst operativsystem, men vi må endre banen nøyaktig. Hvis du prøver å fjerne en fil som ikke eksisterer, får du FileNotFoundError .
Bruke os.path.exists() funksjonen
Denne metoden vil sjekke om en fil eksisterer eller ikke ved å sende navnet på filen som en parameter. OS-modulen har en undermodul kalt PATH ved å bruke som vi kan utføre mange flere funksjoner.
Python import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)> Produksjon:
False>
Som i koden ovenfor, eksisterer ikke filen, den vil gi utgang False. Hvis filen eksisterer, vil den gi oss utdata True.
Bruke os.path.getsize() funksjonen
I os.path.getsize( ) funksjon, vil python gi oss størrelsen på filen i byte. For å bruke denne metoden må vi sende navnet på filen som en parameter.
Python import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')> Produksjon:
rutenettoppsett
Size of the file is 192 bytes.>