Was ist das Betriebssystemmodul von Python und wie verwenden Sie es?

Das Betriebssystemmodul in Python bietet Zugriff auf systemspezifische Funktionen für den Umgang mit dem Dateisystem, den Prozessen, dem Scheduler usw. Sie müssen das Python-Betriebssystem für das Schreiben von Anwendungen beherrschen, die sich mit realen Problemen befassen. In diesem Handbuch werden einige der Kernkonzepte erläutert und die Verwendung des Python-Systembefehls veranschaulicht.

Funktionen des Python OS Systems

Das Betriebssystem dient als tragbare Möglichkeit zur Interaktion mit dem zugrunde liegenden Betriebssystem. Es bietet neben anderen Funktionen Zugriff auf Dateinamen, Befehlszeilenargumente, Umgebungsvariablen, Prozessparameter und Dateisystemhierarchie.

Was ist das Betriebssystemmodul von Python und wie verwenden Sie es? - python os system documentation

Dieses Modul enthält auch zwei Untermodule, das Modul os.sys und das Modul os.path. Mit den vom Betriebssystemmodul bereitgestellten Funktionen können Sie eine Vielzahl von Aufgaben ausführen. Einige gebräuchliche Anwendungen umfassen das Ausführen von Shell-Befehlen, das Verwalten von Dateien und Verzeichnissen, das Laichen von Prozessen usw.

Erste Schritte mit dem OS-Modul

Der einfachste Weg, das Betriebssystemmodul zu erkunden, ist der Interpreter. Sie können das Modul dort importieren und die Systemfunktionen verwenden, ohne Quellcode zu schreiben. Dafür muss jedoch Python installiert sein. Installieren Sie Python auf Ihrem lokalen Computer.

Verwandte: So installieren Sie Python unter Ubuntu

Starten Sie den Interpreter, indem Sie Python in Ihr Terminal oder Ihre Befehlsshell eingeben. Importieren Sie das Betriebssystemmodul nach dem Öffnen mithilfe der folgenden Anweisung.

 >>> import os

Sie können jetzt auf die vom Betriebssystemmodul bereitgestellten Funktionen zugreifen, einschließlich des Python- Systembefehls . Beispielsweise können Sie die Systemplattform mit dem Befehl name ermitteln . Das folgende Beispiel zeigt, wie Systembefehle aufgerufen werden, die vom Betriebssystemmodul verfügbar gemacht werden.

 >>> os.name

Diese Funktion prüft, ob bestimmte betriebssystemspezifische Module vorhanden sind, und ermittelt darauf basierend die Plattform. Verwenden Sie die Uname- Funktion, um detaillierte Informationen zu erhalten.

 >>> os.uname()

Dieser Befehl zeigt die genaue Systemplattform zusammen mit den Informationen zu Maschinenarchitektur, Version und Version an. Verwenden Sie die Funktion getcwd , um das aktuelle Arbeitsverzeichnis abzurufen.

 >>> os.getcwd()
Was ist das Betriebssystemmodul von Python und wie verwenden Sie es? - basics of os module in python

Sie können das Arbeitsverzeichnis einfach mit dem Python-Systembefehl chdir ändern. Übergeben Sie die neue Position als Zeichenfolgenparameter.

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

Die mkdir- Funktion des OS-Moduls erleichtert das Erstellen neuer Verzeichnisse. Außerdem können wir rekursive Ordner erstellen, dh Python erstellt alle fehlenden Verzeichnisse, die dem Blattverzeichnis übergeordnet sind.

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

Verwenden Sie den Befehl rmdir , um Verzeichnisse aus Ihrem Arbeitsverzeichnis zu löschen.

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

Grundlagen des Python OS-Moduls

Beispiele für Python-Systembefehle

Mit dem vom OS-Modul bereitgestellten Systembefehl können Programmierer Shell-Befehle ausführen. Stellen Sie sicher, dass Sie den Befehlsnamen als Zeichenfolge definieren. Sobald Sie den Python- Systembefehl aufrufen, wird der angegebene Befehl in einer neuen Subshell ausgeführt.

 >>> cmd = 'date'
>>> os.system(cmd)
Was ist das Betriebssystemmodul von Python und wie verwenden Sie es? - intro to python system command

Sie können andere eigenständige Anwendungen mit derselben Methode ausführen. Im folgenden Beispiel wird der Terminal-Editor nano über Ihre Python-Shell ausgeführt.

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

Das Python-Betriebssystem gibt auch den Rückkehrcode für jeden ausgeführten Befehl aus. POSIX-Systeme geben 0 für eine erfolgreiche Ausführung und Werte ungleich Null zurück, um Probleme anzuzeigen.

Sie können das Betriebssystem in Python verwenden, um alles auszuführen, was Sie wollen. Wenn Ihr Programm beispielsweise die Versionsinformationen eines Programms auf dem Benutzercomputer lesen muss, können Sie Folgendes tun.

 >>> cmd = 'gcc --version'
>>> os.system(cmd)
Was ist das Betriebssystemmodul von Python und wie verwenden Sie es? - run shell command using os system in python

Im folgenden Beispiel wird ein einfacher Shell-Befehl ausgeführt, mit dem eine neue Datei mit dem Namen users.txt erstellt und mit allen angemeldeten Benutzern gefüllt wird . Viele Python-Programme führen diese Aktionen aus .

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

Wir übergeben den Befehlsnamen als Zeichenfolge an das Betriebssystem. Sie können alle Arten nützlicher Terminalbefehle auf dieselbe Weise verwenden.

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

Sie können auch Unterprozessaufrufe zum Ausführen von Systembefehlen aus Python verwenden. Dies bietet mehrere zusätzliche Vorteile, einschließlich einer schnelleren Laufzeit, einer besseren Fehlerbehandlung, einer Analyse der Ausgabe und Piping-Shell-Befehlen. In der offiziellen Dokumentation von Python wird auch empfohlen, Teilprozesse über ältere Module wie os.system und os.spawn aufzurufen .

 >>> import subprocess
>>> subprocess.run(["ping","-c 3", "example.com"])
Was ist das Betriebssystemmodul von Python und wie verwenden Sie es? - python subprocess call system command

Verwalten von Dateien und Verzeichnissen über das OS-Modul

Wir haben gezeigt, wie Sie mit dem Python OS-Modul einfache Dateien und Verzeichnisse erstellen. Was ist, wenn Sie verschachtelte Ordner erstellen möchten? Das OS-System kümmert sich auch für uns Programmierer darum. Mit den folgenden Snippets wird beispielsweise der Ordner $ HOME / test / root / api erstellt . Außerdem werden die erforderlichen übergeordneten Verzeichnisse erstellt, wenn sie nicht verfügbar sind.

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

Zuerst haben wir das Home-Verzeichnis mit environ abgerufen und dann die Ordnernamen über os.path.join verknüpft . Die print-Anweisung zeigt den Ordnernamen an und makedirs erstellt ihn.

Was ist das Betriebssystemmodul von Python und wie verwenden Sie es? - nested directories in python

Wir können das neue Verzeichnis mit der listdir- Methode des OS-Moduls anzeigen .

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

Sie können das API-Verzeichnis einfach mit dem vom Betriebssystemmodul angebotenen Befehl zum Umbenennen umbenennen . Die folgende Anweisung benennt dieses API-Verzeichnis in test-api um.

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

Verwenden Sie die Funktion isfile und isdir des Betriebssystems, wenn Ihr Programm bestimmte Dateien oder Verzeichnisse überprüfen muss.

 >>> os.path.isfile('file1')
>>> os.path.isdir('file1')
Was ist das Betriebssystemmodul von Python und wie verwenden Sie es? - check filenames using python

Mit dem Betriebssystemmodul in Python können Entwickler neben Dateierweiterungen auch Datei- und Ordnernamen extrahieren. Die folgenden Ausschnitte veranschaulichen die diesbezügliche Verwendung von os.path.split und os.path.splitext .

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

Verwenden Sie den folgenden Code, um Erweiterungen wie .txt oder .mp3 aus Dateinamen zu extrahieren.

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

Sonstige Verwendung des Python-Betriebssystems

Das OS-Modul bietet viele zusätzliche Funktionen zum Bearbeiten von Dingen wie Benutzerprozessen und dem Job Scheduler. Mit der Funktion getuid können Sie beispielsweise schnell die UID (Benutzer-ID) des aktuellen Prozesses abrufen .

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

Die Funktion getgid gibt die Gruppen-ID des laufenden Prozesses zurück. Verwenden Sie getpid , um die PID (Prozess-ID) abzurufen , und getppid , um die übergeordnete Prozess-ID abzurufen .

 >>> os.getpid()
>>> os.getppid()
Was ist das Betriebssystemmodul von Python und wie verwenden Sie es? - get process id with python

Sie können das Betriebssystemmodul auch zum Ändern der Berechtigungen von Dateien und Verzeichnissen in Ihrem Python-Programm verwenden. Verwenden Sie dazu die chmod- Funktion des Betriebssystems.

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

Dieser Befehl ändert die Berechtigung von file1.txt in 0444 . Verwenden Sie 0o444 anstelle von 0444 , um sicherzustellen, dass die Anweisung für beide Hauptversionen von Python kompatibel ist.

Nutzen Sie die Leistungsfähigkeit von Python OS System

Das Betriebssystemmodul von Python bietet alles, was Sie für die Interaktion mit dem zugrunde liegenden Betriebssystem benötigen. Ein klares Verständnis des Betriebssystems ist erforderlich, um wirklich plattformübergreifende Programme zu schreiben. Wir haben einige der Kernfunktionen dieses Moduls behandelt, um Ihnen den Einstieg zu erleichtern. Probieren Sie sie in Ihrem eigenen Tempo aus und vergessen Sie nicht, daran zu basteln.