De OS-module in Python biedt functies voor interactie met het besturingssysteem. OS valt onder de standaard hulpprogrammamodules van Python. Deze module biedt een draagbare manier om besturingssysteemafhankelijke functionaliteit te gebruiken.
De *os* en *os.pad* modules bevatten veel functies voor interactie met het bestandssysteem.
Python-OS-modulefuncties
Hier zullen we enkele belangrijke functies van de Python os-module bespreken:
- Omgaan met de huidige werkmap
- Een map maken
- Bestanden en mappen opsommen met Python
- Directory of bestanden verwijderen met Python
Omgaan met de huidige werkmap
Overwegen Huidige werkmap (CWD) als een map, waarin Python actief is. Telkens wanneer de bestanden alleen met hun naam worden aangeroepen, gaat Python ervan uit dat deze in de CWD beginnen, wat betekent dat verwijzing naar alleen de naam alleen succesvol zal zijn als het bestand zich in de CWD van Python bevindt.
Opmerking: De map waarin het Python-script wordt uitgevoerd, staat bekend als de huidige map. Dit is niet het pad waar het Python-script zich bevindt.
De huidige werkmap ophalen
Om de locatie van de huidige werkmap op te halen os.getcwd() is gebruikt.
Voorbeeld: Deze code maakt gebruik van de ' os'> module om de huidige werkmap (CWD) van het Python-script op te halen en af te drukken. Het haalt de CWD op met behulp van de ' os.getcwd()'> en drukt het vervolgens af naar de console.
import os cwd = os.getcwd() print('Current working directory:', cwd)> Uitgang:
Current working directory: /home/nikhil/Desktop/gfg>
De huidige werkmap wijzigen
De huidige werkmap (CWD) wijzigen os.chdir() methode wordt gebruikt. Deze methode wijzigt de CWD naar een opgegeven pad. Er is slechts één argument nodig als nieuw mappad.
Opmerking: De huidige werkmap is de map waarin het Python-script actief is.
Voorbeeld: De code controleert en geeft de huidige werkmap (CWD) twee keer weer: voor en na het één niveau hoger wijzigen van de map met behulp van os.chdir('../')> . Het biedt een eenvoudig voorbeeld van hoe u met de huidige werkmap in Python kunt werken.
import os def current_path(): print('Current working directory before') print(os.getcwd()) print() current_path() os.chdir('../') current_path()> Uitgang:
Current working directory before C:UsersNikhil AggarwalDesktopgfg Current working directory after C:UsersNikhil AggarwalDesktop>
Een map maken
Er zijn verschillende methoden beschikbaar in de OS-module voor het maken van een directory. Dit zijn -
- os.mkdir()
- os.makedirs()
os.mkdir() gebruiken
Door het gebruiken van os.mkdir() methode in Python wordt gebruikt om een map met de naam pad te maken met de opgegeven numerieke modus. Deze methode genereert FileExistsError als de map die moet worden gemaakt al bestaat.
Voorbeeld: Met deze code worden twee mappen gemaakt: techcodeview.com binnen de D:/Pycharm-projecten/ map en Geeks binnen de D:/Pycharm-projecten map.
- De eerste map wordt gemaakt met behulp van de
os.mkdir()>methode zonder de modus op te geven. - De tweede map wordt gemaakt met dezelfde methode, maar in een specifieke modus (
0o666>) is aanwezig, die lees- en schrijfrechten verleent. - De code drukt vervolgens berichten af om aan te geven dat de mappen zijn aangemaakt.
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)> Uitgang:
Directory 'techcodeview.com' created Directory 'Geeks' created>
os.makedirs() gebruiken
os.makedirs() methode in Python wordt gebruikt om recursief een map te maken. Dat betekent dat tijdens het maken van de leaf-map, als er een map op gemiddeld niveau ontbreekt, de methode os.makedirs() deze allemaal zal maken.
Voorbeeld: Deze code maakt twee mappen aan, Nikhil En C , binnen verschillende bovenliggende mappen. Het maakt gebruik van deos.makedirs>functie om ervoor te zorgen dat bovenliggende mappen worden gemaakt als ze niet bestaan.
Het stelt ook de rechten in voor de C map. De code drukt berichten af om het aanmaken van deze mappen te bevestigen
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)> Uitgang:
Directory 'Nikhil' created Directory 'c' created>
Bestanden en mappen opsommen met Python
Er bestaat os.listdir() methode in Python wordt gebruikt om de lijst met alle bestanden en mappen in de opgegeven map op te halen. Als we geen map opgeven, wordt de lijst met bestanden en mappen in de huidige werkmap geretourneerd.
Voorbeeld: Deze code vermeldt alle bestanden en mappen in de hoofdmap (/) . Het maakt gebruik van deos.listdir>functie om de lijst met bestanden en mappen in het opgegeven pad op te halen en vervolgens de resultaten af te drukken.
import os path = '/' dir_list = os.listdir(path) print('Files and directories in '', path, '' :') print(dir_list)> Uitgang:
Files and directories in ' / ' : ['sys', 'run', 'tmp', 'boot', 'mnt', 'dev', 'proc', 'var', 'bin', 'lib64', 'usr', 'lib', 'srv', 'home', 'etc', 'opt', 'sbin', 'media']>
Directory of bestanden verwijderen met Python
OS-module biedt verschillende methoden voor het verwijderen van mappen en bestanden in Python. Dit zijn -
- os.remove() gebruiken
- os.rmdir() gebruiken
Met behulp van de os.remove()-methode
os.verwijder() methode in Python wordt gebruikt om een bestandspad te verwijderen of te verwijderen. Met deze methode kan een map niet worden verwijderd of verwijderd. Als het opgegeven pad een map is, wordt OSError door de methode gegenereerd.
Voorbeeld: Stel dat het bestand in de map het volgende is:

Deze code verwijdert een bestand met de naam file1.txt van de opgegeven locatie D:/Pycharm projects/techcodeview.com/Authors/Nikhil/. Het maakt gebruik van deos.remove>functie om het bestand op het opgegeven pad te verwijderen.
import os file = 'file1.txt' location = 'D:/Pycharm projects/techcodeview.com/Authors/Nikhil/' path = os.path.join(location, file) os.remove(path)>
Uitgang:

os.rmdir() gebruiken
os.rmdir() methode in Python wordt gebruikt om een lege map te verwijderen of te verwijderen. OSError wordt gegenereerd als het opgegeven pad geen lege map is.
Voorbeeld: Stel dat de mappen dat zijn

Deze code probeert een map met de naam te verwijderen Geeks gevestigd in D:/Pycharm-projecten/ .
Het maakt gebruik van deos.rmdir>functie om de map te verwijderen. Als de map leeg is, wordt deze verwijderd. Als het bestanden of submappen bevat, kan er een fout optreden.
import os directory = 'Geeks' parent = 'D:/Pycharm projects/' path = os.path.join(parent, directory) os.rmdir(path)>
Uitgang:

Veelgebruikte functies
Met behulp van de os.name-functie
Deze functie geeft de naam van de geïmporteerde besturingssysteemafhankelijke module . Momenteel zijn de volgende namen geregistreerd: ‘posix’, ‘nt’, ‘os2’, ‘ce’, ‘java’ en ‘riscos’.
Python import os print(os.name)>
Uitgang:
posix>
Opmerking: Het kan verschillende uitvoer opleveren op verschillende tolken, zoals ‘posix’ wanneer u de code hier uitvoert.
Met behulp van de os.error-functie
Alle functies in deze module verhogen OSFout in het geval van ongeldige of ontoegankelijke bestandsnamen en paden, of andere argumenten die het juiste type hebben, maar niet worden geaccepteerd door het besturingssysteem. os.error is een alias voor de ingebouwde OSError-uitzondering.
Deze code leest de inhoud van een bestand met de naam ‘GFG.txt’ . Het maakt gebruik van een ' probeer...behalve ' blokkeren om potentiële fouten af te handelen, met name de ‘ IOfout ' dat kan gebeuren als er een probleem is met het lezen van het bestand.
Als er een fout optreedt, wordt er een bericht afgedrukt met de tekst: Probleem met lezen: GFG.txt.
Python import os try: filename = 'GFG.txt' f = open(filename, 'rU') text = f.read() f.close() except IOError: print('Problem reading: ' + filename)> Uitgang:
Problem reading: GFG.txt>
De functie os.open() gebruiken
Deze methode opent een pijp naar of van de opdracht. De retourwaarde kan worden gelezen of geschreven, afhankelijk van de modus ‘r’ of ‘w’ .
Syntaxis:
os.popen(command[, mode[, bufsize]])>
Parameters mode & bufsize zijn geen noodzakelijke parameters. Indien niet opgegeven, wordt standaard ‘r’ gebruikt voor modus.
Deze code opent een bestand met de naam ‘GFG.txt’ in schrijfmodus, schrijft Hallo ernaar toe, en leest vervolgens de inhoud ervan en drukt deze af. Het gebruik van os.popen> wordt niet aanbevolen en voor deze taken worden standaardbestandsbewerkingen gebruikt.
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')> Uitgang:
Hello>
Opmerking: Uitvoer voor popen() wordt niet getoond, er zouden directe wijzigingen in het bestand plaatsvinden.
De functie os.close() gebruiken
Sluit de bestandsbeschrijving fd. Een bestand dat is geopend met open(), kan alleen worden gesloten met close(). Maar een bestand geopend via os.popen(), kan worden gesloten met close() of os.close() . Als we proberen een bestand te sluiten dat is geopend met open(), met behulp van os.close(), zou Python TypeError genereren.
Python import os fd = 'GFG.txt' file = open(fd, 'r') text = file.read() print(text) os.close(file)>
Uitgang:
Traceback (most recent call last): File 'C:UsersGFGDesktopGeeksForGeeksOSFile.py', line 6, in os.close(file) TypeError: an integer is required (got type _io.TextIOWrapper)>
Opmerking: Het is mogelijk dat dezelfde fout niet optreedt vanwege het niet-bestaande bestand of het machtigingsvoorrecht.
De functie os.rename() gebruiken
Een bestand oud.txt kan worden hernoemd naar nieuw.txt met behulp van de functie os.rename() . De naam van het bestand verandert alleen als het bestand bestaat en de gebruiker voldoende rechten heeft om het bestand te wijzigen.
Python import os fd = 'GFG.txt' os.rename(fd,'New.txt') os.rename(fd,'New.txt')>
Uitgang:
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' ->'Nieuw.txt'>
Er bestaat een bestandsnaam GFG.txt, dus wanneer os.rename() de eerste keer wordt gebruikt, wordt het bestand hernoemd.
Bij het voor de tweede keer aanroepen van de functie os.rename() bestaat het bestand New.txt en niet GFG.txt, dus gooit Python FileNotFoundError.
De functie os.remove() gebruiken
Met behulp van de Os-module kunnen we een bestand in ons systeem verwijderen met behulp van de os.verwijder() methode. Om een bestand te verwijderen, moeten we de naam van het bestand als parameter doorgeven.
Python import os #importing os module. os.remove('file_name.txt') #removing the file.> De OS-module biedt ons een abstractielaag tussen ons en het besturingssysteem.
Wanneer we werken met os module specificeer altijd het absolute pad, afhankelijk van het besturingssysteem. De code kan op elk besturingssysteem worden uitgevoerd, maar we moeten het pad exact wijzigen. Als u een bestand probeert te verwijderen dat niet bestaat, krijgt u dit FileNotFoundFout .
De functie os.path.exists() gebruiken
Deze methode controleert of een bestand bestaat of niet door de naam van het bestand als parameter door te geven. OS-module heeft een submodule genaamd PATH waarmee we veel meer functies kunnen uitvoeren.
Python import os #importing os module result = os.path.exists('file_name') #giving the name of the file as a parameter. print(result)> Uitgang:
False>
Net als in de bovenstaande code bestaat het bestand niet en zal de uitvoer False opleveren. Als het bestand bestaat, krijgt u de uitvoer True.
De functie os.path.getsize() gebruiken
In os.path.getsize( ) functie, geeft Python ons de grootte van het bestand in bytes. Om deze methode te gebruiken, moeten we de naam van het bestand als parameter doorgeven.
Python import os #importing os module size = os.path.getsize('filename') print('Size of the file is', size,' bytes.')> Uitgang:
Java-codering if else-instructie
Size of the file is 192 bytes.>