Python os module

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 zijn path toe aan het specifieke module-attribuut van os.
  • Het injecteert sys.modules['os.path'] = pad zodat je import 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