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 om applicaties te schrijven die met echte problemen te maken hebben. Deze gids bespreekt enkele van de kernconcepten en illustreert hoe u de Python-systeemopdracht gebruikt.

Kenmerken van het Python OS-systeem

Het besturingssysteem dient als een draagbare manier om te communiceren 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. Enkele veel voorkomende toepassingen zijn het uitvoeren van shell-opdrachten, het beheren van bestanden en mappen, paaiprocessen, enz.

Aan de slag met de OS-module

De gemakkelijkste manier om de OS-module te verkennen, is via de tolk. U kunt de module daar importeren en de systeemfuncties gebruiken zonder de broncode te schrijven. Hiervoor moet Python echter zijn geïnstalleerd. Dus ga je gang en installeer Python op je lokale computer.

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.

>>> import os

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

>>> 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 machine-architectuur, release- en versiegegevens. Gebruik de getcwd functie om de huidige werkdirectory op te halen.

>>> os.getcwd ()

U kunt de werkmap eenvoudig wijzigen met 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 aanmaken die de ouders zijn van de leaf-map.

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

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

>>> os.rmdir ('nieuwe-map')

basisprincipes van de python os-module

Voorbeelden van Python System Command

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

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

U kunt op dezelfde manier andere zelfstandige toepassingen gebruiken. In het volgende voorbeeld wordt het terminal editor nano vanuit je Python-shell.

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

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

U kunt het OS-systeem 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 eenvoudige shellopdracht uit die een nieuw bestand maakt met de naam gebruikers.txt en vult het met alle aangemelde gebruikers. Veel Python-programma's doen deze dingen.

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

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

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

Je kan ook gebruiken subproces roept op tot het uitvoeren van systeemopdrachten vanuit Python. Dit biedt verschillende extra voordelen, waaronder snellere runtime, betere foutafhandeling, uitvoerparsering en piping-shell-opdrachten. De officiële documentatie van Python raadt ook aan om een ​​subproces aan te roepen via oudere modules zoals os.system en os.spawn.

>>> importeer subproces
>>> subproces.run (["ping", "- c 3", "voorbeeld.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 zorgt hier ook voor ons programmeurs. De onderstaande fragmenten maken bijvoorbeeld de map $ HOME / test / root / api. Het zal ook de nodige bovenliggende mappen creëren als deze niet beschikbaar zijn.

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

Eerst hebben we de homedirectory opgehaald met omgeving en voegde zich vervolgens bij de mapnamen via os.path.join. De afdrukinstructie toont de mapnaam en makedirs creëert het.

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

>>> os.chdir (os.path.join (os.environ ['HOME'], 'test', 'root', 'api'))
>>> os.system ('touch bestand1 bestand2 bestand3')
>>> os.listdir (os.environ ['HOME'])

U kunt de api-directory gemakkelijk 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 isdir functie van OS als uw programma specifieke bestanden of mappen moet valideren.

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

Met de OS-module in Python kunnen ontwikkelaars naast bestandsextensies ook bestands- en mapnamen extraheren. De onderstaande fragmenten illustreren het gebruik van os.path.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 (basisnaam)

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

>>> bestandsnaam, extensie = os.path.splitext (basisnaam)
>>> print (bestandsnaam)
>>> print (extensie)

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 ophalen met behulp van de getuid functie.

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

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

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

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

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

Dit commando verandert de toestemming van bestand1.txt naar 0444. Gebruik 0o444 in plaats van 0444 om ervoor te zorgen dat de instructie compatibel is met beide hoofdversies van Python.

Benut de kracht van Python OS-systeem

De OS-module van Python biedt alles wat u 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 kernfunctionaliteiten van deze module behandeld om u op weg te helpen. Probeer ze in uw eigen tempo en vergeet niet eraan te sleutelen.

E-mail
Tuples 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.

Gerelateerde onderwerpen
  • Programmeren
  • Python
Over de auteur
Rubaiat Hossain (8 Artikelen gepubliceerd)

Rubaiat is een afgestudeerde CS met een sterke passie voor open-source. Behalve dat hij een Unix-veteraan is, houdt hij ook van netwerkbeveiliging, cryptografie en functioneel programmeren. Hij is een fervent verzamelaar van tweedehands boeken en heeft een oneindige 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!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.