Die Python OS-Modul bietet einfache Funktionen, mit denen wir interagieren und Informationen über das Betriebssystem abrufen und sogar Prozesse bis zu einem gewissen Grad steuern können.
Python OS-Modul
Die Funktionen des OS-Moduls ermöglichen es uns, auf zugrunde liegende Betriebssystemaufgaben zuzugreifen, unabhängig davon, ob es sich um eine Windows-Plattform, einen Macintosh oder Linux handelt. In dieser Lektion werden wir diese Funktionen überprüfen und was wir damit tun können. Lassen Sie uns unsere Reise mit diesen Funktionen und den Informationen, die sie bieten, beginnen.
Python import os
Bitte beachten Sie, dass wir zunächst das OS-Modul in unserem Programm importieren müssen, bevor wir eine seiner Funktionen ausführen können.
os.name
Diese Funktion gibt den Namen des OS-Moduls zurück, das es importiert. Dies variiert je nach zugrunde liegendem Betriebssystem. Derzeit registriert es ‚posix‘, ‚os2‘, ‚ce‘, ’nt‘, ‚riscos‘ und ‚java‘. Führen wir dies auf dem System aus:
>>> print(os.name)
posix
Offensichtlich kann dies verschiedene Plattformen basierend auf dem Interpreter ausgeben.
os.environ
environ
ist keine Funktion, sondern ein Prozessparameter, über den wir auf Umgebungsvariablen des Systems zugreifen können. Schauen wir uns ein Beispielcode-Snippet an:
import os
output = os.environ['HOME']
print(output)
Wenn wir dieses Skript ausführen, wird folgendes ausgegeben: Wir können es verwenden, um mit den Umgebungsvariablen zu arbeiten, mehr unter Python Umgebungsvariable setzen.
os.execvp
execvp
Funktion ist eine Möglichkeit, andere Befehle im System auszuführen. Schauen wir uns ein Beispielcode-Snippet für diese Funktion an:
import os
program = "python"
arguments = ["hello.py"]
print(os.execvp(program, (program,) + tuple(arguments)))
Für dies haben wir einfach ein Beispiel-Skript als hello.py
erstellt mit folgendem Code:
print('Hello')
Wenn wir dieses Skript ausführen, wird folgende Ausgabe generiert:
os.getuid
Diese Funktion des os-Moduls gibt die Benutzer-ID oder UID des aktuellen Prozesses zurück, wie sie allgemein bekannt ist.
>>> os.getuid()
501
Die aktuelle Prozess-ID der Shell ist also 501.
os.rename
Mit der Python os-Rename-Funktion können wir einfach den Namen einer Datei ändern.
import os
fileDir = "JournalDev.txt"
os.rename(fd,'JournalDev_Hi.txt')
Beachten Sie, dass wir dafür korrekte Berechtigungen für unser Skript bereitstellen müssen.
os.system
Die Python os-Systemfunktion ermöglicht es uns, einen Befehl im Python-Skript auszuführen, so als würde ich ihn in meiner Shell ausführen. Zum Beispiel:
import os
currentFiles = os.system("users > users.txt")
Als ich dieses Skript ausführte, wurde eine neue Datei im selben Verzeichnis mit dem Namen „users.txt“ und dem Inhalt „String as ’shubham'“ erstellt, da dies auch von der Original-Shell zurückgegeben wird: Beachten Sie, dass dies ein sehr mächtiger Befehl ist und vorsichtig verwendet werden sollte.
os.error
Die Python os-Modulfehlerklasse ist die Basisklasse für I/O-bezogene Fehler. Daher können wir E/A-Fehler mit OSError im Except-Block abfangen.
import os
try:
f = open('abc.txt', 'r') # file is missing
except OSError:
print('Error')
os.getpid
Diese Funktion gibt die aktuelle Prozess-ID oder PID zurück, wie sie allgemein bekannt ist.
>>> os.getpid()
71622
Also ist die Benutzer-ID des aktuellen Shell-Prozesses 71622.
os.listdir
Diese Funktion listet einfach die Dateien und Verzeichnisse im aktuellen Arbeitsverzeichnis auf.
>>> import os
>>> os.listdir()
['.DS_Store', '.localized', 'JournalDev', 'Java', 'Python']
Sie gibt eine iterierbare Liste von Verzeichnis- und Dateinamen zurück.
os.uname
Diese Funktion gibt Informationen zurück, die das aktuelle Betriebssystem identifizieren, auf dem dies ausgeführt wird.
>>> 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')
Das war eigentlich ziemlich ausführlich.
import os.path vs import os
os.path
funktioniert tatsächlich seltsam. Es sieht so aus, als ob os
mit einem Untermodul path
gepackt ist, aber tatsächlich ist os
ein normales Modul, das mit sys.module
arbeitet, um os.path
zu unterstützen. Lassen Sie uns auflisten, was hinter den Kulissen passiert:
- Wenn Python startet, lädt es viele Module in
sys.module
. os
-Modul wird auch beim Start von Python geladen. Es weist seinpath
dem spezifischenos
-Modulattribut zu.- Es injiziert
sys.modules['os.path'] = path
, damit Sieimport os.path
machen können, als ob es ein Untermodul wäre.
Zusammenfassung
In dieser Lektion haben wir verschiedene Funktionen des OS-Moduls in Python besprochen und gesehen, wie sie funktionieren. Weitere Lektionen zu Python finden Sie hier. Referenz: API-Dokumentation
Source:
https://www.digitalocean.com/community/tutorials/python-os-module