logo

OS-module in Python met voorbeelden

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.

Python
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.

Python
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 deos.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.
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)>

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.

Python
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.

Python
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.

Python
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.

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

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