De Python OS-module biedt eenvoudige functies waarmee we kunnen communiceren en informatie over het besturingssysteem kunnen verkrijgen, en zelfs processen tot op zekere hoogte kunnen controleren.
Python OS-module
De functies van de OS-module stellen ons in staat om te werken met onderliggende taken van het besturingssysteem, ongeacht of het een Windows-platform, Macintosh of Linux is. In deze les zullen we deze functies bekijken en wat we ermee kunnen doen. Laten we onze reis beginnen met deze functies en welke informatie ze bieden.
Python import os
Houd er rekening mee dat we allereerst de OS-module moeten importeren in ons programma, pas dan kunnen we een van de functies ervan uitvoeren.
os.name
Deze functie geeft de naam van het OS-module dat het importeert. Dit verschilt op basis van het onderliggende besturingssysteem. Momenteel registreert het ‘posix’, ‘os2’, ‘ce’, ‘nt’, ‘riscos’ en ‘java’. Laten we dit uitvoeren op het systeem:
>>> print(os.name)
posix
Het is duidelijk dat dit verschillende platforms kan uitvoeren op basis van de interpreter.
os.environ
environ
is geen functie maar een procesparameter waarmee we toegang kunnen krijgen tot de omgevingsvariabelen van het systeem. Laten we een voorbeeldcodefragment bekijken:
import os
output = os.environ['HOME']
print(output)
Wanneer we dit script uitvoeren, zal het volgende de uitvoer zijn: We kunnen het gebruiken om te werken met de omgevingsvariabelen, lees meer op Python stel omgevingsvariabele in.
os.execvp
execvp
functie is een van de manieren om andere opdrachten op het systeem uit te voeren. Laten we een voorbeeldcodefragment voor deze functie bekijken:
import os
program = "python"
arguments = ["hello.py"]
print(os.execvp(program, (program,) + tuple(arguments)))
Voor dit doel hebben we gewoon een voorbeeldscript aangemaakt als hello.py
met de volgende code:
print('Hello')
Wanneer we dit script uitvoeren, zal het volgende de output zijn:
os.getuid
Deze os-modulefunctie retourneert de gebruikers-ID of UID van het huidige proces, zoals het populair bekend is.
>>> os.getuid()
501
Dus, het huidige shell proces-ID is 501.
os.rename
Met de Python os rename-functie kunnen we eenvoudig een bestand hernoemen.
import os
fileDir = "JournalDev.txt"
os.rename(fd,'JournalDev_Hi.txt')
Merk op dat we hiervoor de juiste machtigingen aan ons script moeten geven.
os.system
De Python os system-functie stelt ons in staat om een opdracht uit te voeren in het Python-script, net alsof ik het in mijn shell zou uitvoeren. Bijvoorbeeld:
import os
currentFiles = os.system("users > users.txt")
Toen ik dit script uitvoerde, werd er een nieuw bestand gemaakt in dezelfde map met de naam users.txt en de inhoud String als ‘shubham’, zoals dit ook door de oorspronkelijke shell wordt geretourneerd: Merk op dat dit een zeer krachtige opdracht is en voorzichtig moet worden gebruikt.
os.error
De Python os-modulefoutklasse is de basisklasse voor fouten met betrekking tot I/O. Dus we kunnen IO-fouten opvangen met OSError in de except-clausule.
import os
try:
f = open('abc.txt', 'r') # file is missing
except OSError:
print('Error')
os.getpid
Deze functie retourneert het huidige proces-ID of PID, zoals het algemeen bekend is.
>>> os.getpid()
71622
Dus, de gebruikers-ID van het huidige shellproces is 71622.
os.listdir
Deze functie geeft simpelweg een lijst van de bestanden en mappen weer die aanwezig zijn in de huidige werkdirectory.
>>> import os
>>> os.listdir()
['.DS_Store', '.localized', 'JournalDev', 'Java', 'Python']
Het retourneert een iterable lijst van map- en bestandsnamen.
os.uname
Deze functie retourneert informatie die het huidige besturingssysteem identificeert waarop dit wordt uitgevoerd.
>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='Shubham.local', release='17.2.0', version='Darwin Kernel Version 17.2.0: Fri Sep 29 18:27:05 PDT 2017; root:xnu-4570.20.62~3/RELEASE_X86_64', machine='x86_64')
Dat was eigenlijk behoorlijk gedetailleerd.
import os.path vs import os
os.path
werkt eigenlijk vreemd. Het lijkt alsof os
verpakt is met een submodule path
, maar eigenlijk is os
een normale module die werkt met sys.module
om os.path
te ondersteunen. Laten we eens kijken wat er achter de schermen gebeurt:
- Wanneer Python wordt gestart, laadt het veel modules in
sys.module
. - De
os
-module wordt ook geladen wanneer Python start. Het wijst zijnpath
toe aan het specifieke module-attribuut vanos
. - Het injecteert
sys.modules['os.path'] = pad
zodat jeimport os.path
kunt doen alsof het een submodule was.
Samenvatting
In deze les hebben we verschillende functies gelezen die worden geleverd door de OS-module in Python en hebben we gezien hoe ze werken. Bekijk meer lessen over Python hier. Referentie: API Doc
Source:
https://www.digitalocean.com/community/tutorials/python-os-module