Wat is de OS-module van Python en hoe gebruik je deze?

Wat is de OS-module van Python en hoe gebruik je deze?

De OS-module in Python biedt toegang tot systeemspecifieke functies voor het omgaan met het bestandssysteem, processen, planner, enz. U moet het Python OS-systeem beheersen voor het schrijven van applicaties die omgaan met problemen uit de echte wereld. Deze gids bespreekt enkele van de kernconcepten en illustreert hoe de Python-systeemopdracht te gebruiken.





Kenmerken van het Python OS-systeem

Het OS-systeem dient als een draagbare manier van interactie met het onderliggende besturingssysteem. Het biedt toegang tot bestandsnamen, opdrachtregelargumenten, omgevingsvariabelen, procesparameters en bestandssysteemhiërarchie naast andere functionaliteiten.





Deze module bevat ook twee submodules, de os.sys-module en de os.path-module. U kunt de functies van de OS-module gebruiken voor het uitvoeren van een breed scala aan taken. Een veelgebruikt gebruik omvat het uitvoeren van shell-opdrachten, het beheren van bestanden en mappen, spawning-processen, enz.





Aan de slag met de OS-module

De eenvoudigste manier om de OS-module te verkennen, is via de interpreter. U kunt de module daar importeren en de systeemfuncties gebruiken zonder broncode te schrijven. Hiervoor moet je Python wel hebben geïnstalleerd. Dus ga je gang en installeer Python op je lokale machine.

Verwant: Hoe Python op Ubuntu te installeren



Start de tolk door te typen Python in uw terminal of opdrachtshell. Zodra het is geopend, importeert u de OS-module met behulp van de volgende instructie.

hoe maak je een groep aan in imessage
>>> import os

U hebt nu toegang tot de functionaliteiten van de OS-module, inclusief de Python systeem opdracht. U kunt bijvoorbeeld het systeemplatform bepalen met behulp van de naam opdracht. Het onderstaande voorbeeld laat zien hoe u systeemopdrachten kunt aanroepen die door de OS-module worden weergegeven.





>>> os.name

Deze functie controleert of bepaalde OS-specifieke modules aanwezig zijn en bepaalt op basis daarvan het platform. Gebruik de je naam functie om gedetailleerde informatie te krijgen.

>>> os.uname()

Deze opdracht geeft het exacte systeemplatform weer naast de machinearchitectuur, release en versie-informatie. Gebruik de getcwd functie om de huidige werkdirectory op te halen.





>>> os.getcwd()

U kunt de werkdirectory eenvoudig wijzigen met behulp van de Python-systeemopdracht chdir . Geef de nieuwe locatie door als een tekenreeksparameter.

>>> os.chdir('/tmp')

De mkdir functie van de OS-module maakt het maken van nieuwe mappen eenvoudig. Het stelt ons ook in staat om recursieve mappen te maken, wat betekent dat Python alle ontbrekende mappen zal maken die de bovenliggende map zijn van de bladmap.

>>> os.mkdir('new-dir')

Gebruik de rmdir commando om mappen uit uw werkmap te verwijderen.

>>> os.rmdir('new-dir')

Voorbeelden van Python-systeemopdracht

Met het systeemcommando van de OS-module kunnen programmeurs shell-commando's uitvoeren. Zorg ervoor dat u de opdrachtnaam als een tekenreeks definieert. Zodra je de python belt systeem commando, zal het de gegeven opdracht in een nieuwe subshell uitvoeren.

>>> cmd = 'date'
>>> os.system(cmd)

U kunt met dezelfde methode andere zelfstandige toepassingen uitvoeren. In het volgende voorbeeld wordt de terminaleditor nano uitgevoerd vanuit uw Python-shell.

>>> cmd = 'nano'
>>> os.system(cmd)

Het Python OS-systeem voert ook de retourcode uit voor elke opdracht die wordt uitgevoerd. POSIX-systemen retourneren 0 voor succesvolle uitvoering en niet-nulwaarden om problemen aan te geven.

U kunt het besturingssysteem in Python gebruiken om alles uit te voeren wat u maar wilt. Als uw programma bijvoorbeeld de versie-informatie van een programma op de gebruikerscomputer moet lezen, kunt u zoiets als het volgende doen.

>>> cmd = 'gcc --version'
>>> os.system(cmd)

Het onderstaande voorbeeld voert een eenvoudig shell-commando uit dat een nieuw bestand aanmaakt met de naam gebruikers.txt en vult het met alle ingelogde gebruikers. Veel Python-programma's doen deze dingen.

>>> os.system('users > test')

We geven de opdrachtnaam door aan het besturingssysteem als een string. U kunt alle soorten nuttige terminalopdrachten dezelfde manier.

>>> os.system('ping -c 3 google.com')

Je kan ook gebruiken subproces vraagt ​​om het uitvoeren van systeemopdrachten vanuit Python. Dit biedt verschillende extra voordelen, waaronder een snellere runtime, betere foutafhandeling, output-parsing en piping-shell-opdrachten. De officiële documentatie van Python beveelt ook het aanroepen van subprocessen aan over oudere modules zoals: os.systeem en os.spawn .

>>> import subprocess
>>> subprocess.run(['ping','-c 3', 'example.com'])

Bestanden en mappen beheren via OS-module

We hebben laten zien hoe u eenvoudige bestanden en mappen kunt maken met behulp van de Python OS-module. Wat als u geneste mappen wilt maken? Het OS-systeem regelt dit ook voor ons programmeurs. De onderstaande fragmenten maken bijvoorbeeld de map $HOME/test/root/api . Het zal ook de benodigde bovenliggende mappen maken als deze niet beschikbaar zijn.

>>> dirname = os.path.join(os.environ['HOME'], 'test', 'root', 'api')
>>> print(dirname)
>>> os.makedirs(dirname)

Eerst hebben we de thuismap opgehaald met wat betreft en voegde vervolgens de mapnamen toe via os.path.join . De printopdracht geeft de mapnaam weer, en makedirs creëert het.

We kunnen de nieuwe map bekijken met de lijstmap methode van de OS-module.

>>> os.chdir(os.path.join(os.environ['HOME'], 'test', 'root', 'api'))
>>> os.system('touch file1 file2 file3')
>>> os.listdir(os.environ['HOME'])

U kunt de api-map eenvoudig hernoemen met de hernoemen commando aangeboden door de OS-module. De onderstaande instructie hernoemt deze api-map naar test-api.

>>> os.rename('api', 'test-api')

Gebruik de isfile en naam functie van het besturingssysteem als uw programma specifieke bestanden of mappen moet valideren.

>>> os.path.isfile('file1')
>>> os.path.isdir('file1')

Met de OS-module in Python kunnen ontwikkelaars naast bestandsextensies ook bestands- en mapnamen extraheren. De onderstaande fragmenten illustreren het gebruik van: os.pad.split en os.path.splitext in dit verband.

>>> dir = os.path.join(os.environ['HOME'], 'test', 'root', 'api', 'file1.txt')
>>> dirname, basename = os.path.split(dir)
>>> print(dirname)
>>> print(basename)

Gebruik de onderstaande code om extensies zoals .txt of .mp3 uit bestandsnamen te extraheren.

>>> filename, extension = os.path.splitext(basename)
>>> print(filename)
>>> print(extension)

Diversen gebruik van het Python OS-systeem

De OS-module biedt veel extra functies voor het manipuleren van zaken als gebruikersprocessen en de taakplanner. U kunt bijvoorbeeld snel de UID (gebruikers-ID) van het huidige proces krijgen met behulp van de getuid functie.

>>> os.getuid()
>>> os.getgid()

De getgid functie retourneert de groeps-ID van het lopende proces. Gebruik maken van getpid voor het verkrijgen van de PID (proces-ID) en getppid om de bovenliggende proces-ID te krijgen.

>>> os.getpid()
>>> os.getppid()

U kunt de OS-module ook gebruiken voor het wijzigen van machtigingen van bestanden en mappen vanuit uw Python-programma. Gebruik de chmod functie van het besturingssysteem om dit te doen.

>>> os.chmod('file1.txt', 0o444)

Deze opdracht wijzigt de toestemming van bestand1.txt tot 0444 . Gebruik maken van 0o444 in plaats van 0444 om ervoor te zorgen dat de instructie compatibel is met beide hoofdversies van Python.

Benut de kracht van het Python OS-systeem

De OS-module van Python biedt alles wat je nodig hebt om te communiceren met het onderliggende besturingssysteem. Een duidelijk begrip van het besturingssysteem is nodig om echt platformonafhankelijke programma's te schrijven. We hebben enkele van de kernfuncties van deze module behandeld om u op weg te helpen. Probeer ze in je eigen tempo, en vergeet niet eraan te sleutelen.

Deel Deel Tweeten E-mail Tupels maken en gebruiken in Python

Klaar om je Python-codering naar een hoger niveau te tillen? Het is tijd om te begrijpen hoe u tuples kunt maken en gebruiken.

Lees volgende
Gerelateerde onderwerpen
  • Programmeren
  • Python
Over de auteur Rubaiat Hossain(39 artikelen gepubliceerd)

Rubaiat is een CS-graduaat met een sterke passie voor open-source. Behalve dat hij een Unix-veteraan is, houdt hij zich ook bezig met netwerkbeveiliging, cryptografie en functioneel programmeren. Hij is een fervent verzamelaar van tweedehands boeken en heeft een nooit aflatende bewondering voor classic rock.

Meer van Rubaiat Hossain

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren