Det OS-modul i Python giver funktioner til at interagere med operativsystemet. OS kommer under Pythons standard hjælpemoduler. Dette modul giver en bærbar måde at bruge operativsystemafhængig funktionalitet.
Det *os* og *os.path* moduler indeholder mange funktioner til at interagere med filsystemet.
Python-OS-modulfunktioner
Her vil vi diskutere nogle vigtige funktioner i Python os-modulet:
- Håndtering af den aktuelle arbejdsmappe
- Oprettelse af en mappe
- Liste over filer og mapper med Python
- Sletning af mappe eller filer ved hjælp af Python
Håndtering af den aktuelle arbejdsmappe
Overveje Current Working Directory (CWD) som en mappe, hvor Python fungerer. Når filerne kun kaldes ved deres navn, antager Python, at den starter i CWD, hvilket betyder, at reference kun for navn vil lykkes, hvis filen er i Python's CWD.
Bemærk: Mappen, hvor Python-scriptet kører, er kendt som Current Directory. Dette er ikke stien, hvor Python-scriptet er placeret.
Hent den aktuelle arbejdsmappe
For at få placeringen af den aktuelle arbejdsmappe os.getcwd() anvendes.
Eksempel: Denne kode bruger ' os'> modul for at hente og udskrive den aktuelle arbejdsmappe (CWD) i Python-scriptet. Den henter CWD ved hjælp af ' os.getcwd()'> og udskriver den derefter til konsollen.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Produktion:
Current working directory: /home/nikhil/Desktop/gfg>
Ændring af den aktuelle arbejdsmappe
For at ændre den aktuelle arbejdsmappe (CWD) os.chdir() metode anvendes. Denne metode ændrer CWD til en specificeret sti. Det tager kun et enkelt argument som en ny mappesti.
Bemærk: Den aktuelle arbejdsmappe er den mappe, hvori Python-scriptet fungerer.
Eksempel: Koden kontrollerer og viser den aktuelle arbejdsmappe (CWD) to gange: før og efter ændring af biblioteket et niveau op vha. os.chdir('../')> . Det giver et simpelt eksempel på, hvordan man arbejder med den aktuelle arbejdsmappe i Python.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Produktion:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Oprettelse af en mappe
Der er forskellige metoder tilgængelige i OS-modulet til at oprette en mappe. Disse er -
- os.mkdir()
- os.makedirs()
Bruger os.mkdir()
Ved hjælp af os.mkdir() metode i Python bruges til at oprette en mappe med navnet sti med den angivne numeriske tilstand. Denne metode rejser FileExistsError, hvis den mappe, der skal oprettes, allerede eksisterer.
Eksempel: Denne kode opretter to mapper: techcodeview.com indenfor D:/Pycharm projekter/ bibliotek og Nørder indenfor D:/Pycharm projekter vejviser.
- Den første mappe oprettes ved hjælp af
os.mkdir()>metode uden at angive tilstanden. - Den anden mappe er oprettet ved hjælp af samme metode, men en bestemt tilstand (
0o666>) leveres, som giver læse- og skrivetilladelser. - Koden udskriver derefter meddelelser for at angive, at mapperne er blevet oprettet.
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)> Produktion:
Directory 'techcodeview.com' created Directory 'Geeks' created>
Bruger os.makedirs()
os.makedirs() metode i Python bruges til at oprette en mappe rekursivt. Det betyder, at mens du laver bladmappen, hvis der mangler en mappe på mellemniveau, vil os.makedirs()-metoden oprette dem alle.
Eksempel: Denne kode opretter to mapper, Nikhil og c , i forskellige overordnede mapper. Den brugeros.makedirs>funktion for at sikre, at overordnede mapper oprettes, hvis de ikke eksisterer.
Det angiver også tilladelserne for c vejviser. Koden udskriver meddelelser for at bekræfte oprettelsen af disse mapper
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)> Produktion:
Directory 'Nikhil' created Directory 'c' created>
Liste over filer og mapper med Python
Der er os.listdir() metode i Python bruges til at få listen over alle filer og mapper i den angivne mappe. Hvis vi ikke angiver nogen mappe, vil listen over filer og mapper i den aktuelle arbejdsmappe blive returneret.
Eksempel: Denne kode viser alle filer og mapper i rodmappen (/) . Den brugeros.listdir>funktion for at få listen over filer og mapper i den angivne sti og derefter udskrive resultaterne.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Produktion:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Sletning af mappe eller filer ved hjælp af Python
OS-modul giver forskellige metoder til at fjerne mapper og filer i Python. Disse er -
- Brug af os.remove()
- Bruger os.rmdir()
Bruger os.remove() metoden
os.remove() metode i Python bruges til at fjerne eller slette en filsti. Denne metode kan ikke fjerne eller slette en mappe. Hvis den angivne sti er en mappe, vil OSError blive rejst af metoden.
Eksempel: Antag, at filen i mappen er:

Denne kode fjerner en fil med navnet file1.txt fra den angivne placering D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Den brugeros.remove>funktion for at slette filen på den angivne sti.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Produktion:

Bruger os.rmdir()
os.rmdir() metode i Python bruges til at fjerne eller slette en tom mappe. OSError vil blive rejst, hvis den angivne sti ikke er en tom mappe.
Eksempel: Antag, at mapperne er

Denne kode forsøger at fjerne en mappe med navnet Nørder placeret kl D:/Pycharm projekter/ .
Den brugeros.rmdir>funktion for at slette biblioteket. Hvis mappen er tom, vil den blive fjernet. Hvis det indeholder filer eller undermapper, kan du støde på en fejl.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Produktion:

Almindelig brugte funktioner
Bruger os.navn-funktionen
Denne funktion giver navnet på det importerede operativsystemafhængige modul . Følgende navne er i øjeblikket blevet registreret: 'posix', 'nt', 'os2', 'ce', 'java' og 'riscos'.
Python import os print(os.name)>
Produktion:
posix>
Bemærk: Det kan give forskelligt output på forskellige tolke, såsom 'posix', når du kører koden her.
Bruger os.error-funktionen
Alle funktioner i dette modul hæves OSError i tilfælde af ugyldige eller utilgængelige filnavne og stier eller andre argumenter, der har den korrekte type, men som ikke accepteres af operativsystemet. os.error er et alias for indbygget OSError-undtagelse.
Denne kode læser indholdet af en fil med navnet 'GFG.txt' . Den bruger en ' prøv … undtagen ' blok for at håndtere potentielle fejl, især IOEfejl ' der kan opstå, hvis der er et problem med at læse filen.
Hvis der opstår en fejl, udskriver den en meddelelse, der siger: Problemer med at læse: GFG.txt.
Python import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Produktion:
Problem reading: GFG.txt>
Bruger os.popen() funktionen
Denne metode åbner et rør til eller fra kommando. Returværdien kan læses eller skrives afhængigt af om tilstanden er 'r' eller 'w' .
Syntaks:
os.popen(command[, mode[, bufsize]])>
Parametre mode & bufsize er ikke nødvendige parametre, hvis de ikke er angivet, tages standard 'r' for mode.
Denne kode åbner en fil med navnet 'GFG.txt' i skrivetilstand, skriver Hej til den, og læser og udskriver derefter indholdet. Brugen af os.popen> anbefales ikke, og standard filhandlinger bruges til disse opgaver.
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')> Produktion:
Hello>
Bemærk: Output for popen() vil ikke blive vist, der ville være direkte ændringer i filen.
Bruger os.close() funktion
Luk filbeskrivelse fd. En fil, der åbnes ved hjælp af open(), kan kun lukkes med close(). Men fil åbnet gennem os.popen(), kan lukkes med close() eller os.close() . Hvis vi prøver at lukke en fil åbnet med open(), ved hjælp af os.close(), ville Python kaste TypeError.
Python import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Produktion:
Traceback (most recent call last): File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>
Bemærk: Den samme fejl vises muligvis ikke på grund af den ikke-eksisterende fil eller tilladelsesprivilegium.
Bruger os.rename() funktionen
En fil old.txt kan omdøbes til new.txt ved hjælp af funktionen os.rename() . Navnet på filen ændres kun, hvis filen eksisterer, og brugeren har tilstrækkelig privilegietilladelse til at ændre filen.
Python import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Produktion:
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'>
Der eksisterer et filnavn GFG.txt, så når os.rename() bruges første gang, bliver filen omdøbt.
Når funktionen os.rename() kaldes anden gang, eksisterer filen New.txt og ikke GFG.txt, så Python kaster FileNotFoundError.
Bruger os.remove()-funktionen
Ved at bruge Os-modulet kan vi fjerne en fil i vores system ved hjælp af os.remove() metode. For at fjerne en fil skal vi videregive navnet på filen som en parameter.
Python import os #importing os module. os.remove('file_name.txt') #removing the file.> OS-modulet giver os et lag af abstraktion mellem os og operativsystemet.
Når vi arbejder med os modul angiv altid den absolutte sti afhængigt af operativsystemet, koden kan køre på ethvert OS, men vi skal ændre stien nøjagtigt. Hvis du forsøger at fjerne en fil, der ikke eksisterer, får du FileNotFoundError .
Brug af os.path.exists() funktion
Denne metode vil kontrollere, om en fil eksisterer eller ej, ved at overføre navnet på filen som en parameter. OS-modulet har et undermodul ved navn PATH, som vi kan bruge til at udføre mange flere funktioner.
Python import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)> Produktion:
False>
Som i ovenstående kode eksisterer filen ikke, den vil give output False. Hvis filen eksisterer, vil den give os output True.
Bruger os.path.getsize() funktionen
I os.path.getsize( ) funktion, vil python give os størrelsen på filen i bytes. For at bruge denne metode skal 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.')> Produktion:
sammenligne med java
Size of the file is 192 bytes.>