Python Modul os – arbeiten mit Betriebssystemfunktionalität
In Python ist da Modul os
bereits integriert. Dieses kann nach dem typischen Import einfach genutzt werden. Es muss also nicht Installiert werden über PIP.
import os
Name des Betriebssystems über os.name
In der Variablen os.name
kann abgerufen werden, ob es ein Windows-System oder ein Linus-System ist. Was ist mich dem macOS? Der Mac basiert auf Unix, daher erhalten wir auch dort dann als Rückmeldung „posix“.
import os
print(os.name)
Als Rückmeldung erhalten wir:
nt für Windows
posix für Linux/Unix und den Mac
Arbeitsverzeichnis auslesen getcwd()
Das aktuelle Arbeitsverzeichnis kann über getcwd()
ermittelt werden. Die englische Anweisung wird mit Übersetzung klar: getcwd -> get current working directory - > hole aktuelles Arbeitsverzeichnis
import os
print(os.getcwd())
Unter einem Mac:
/Users/axelp/Documents/Projekte/Python-lernen.de/Skripte
Arbeitsverzeichnis ändern os.chdir(Pfad)
Die Funktion os.chdir(Pfad)
kann das Arbeitsverzeichnis geändert werden. Die Anweisung steht für das englische „change directory“.
Mögliche (vorhandene) Systemvariablen os.environ
Eine Abfrage für die im genutzten Betriebssystem vorhandenen Systemvariablen.
import os
print(os.environ)
Führt man das Python-Programm mit dem Mac aus, erhält man folgende Ausgabe:
environ({'USER': 'axelp', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'LOGNAME': 'axelp', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.cXrqjKktJJ/Listeners', 'HOME': '/Users/axelp', 'SHELL': '/bin/zsh', '__CF_USER_TEXT_ENCODING': '0x1F5:0x0:0x3', 'TMPDIR': '/var/folders/7c/xrfbm9tx6nv5kwgw0mx0h4840000gn/T/', 'XPC_SERVICE_NAME': '0', 'XPC_FLAGS': '0x0', 'LC_CTYPE': 'UTF-8', 'PYTHONPATH': '/Applications/Python 3.9/IDLE.app/Contents/Resources', 'DYLD_LIBRARY_PATH': '/Applications/Python 3.9/IDLE.app/Contents/Frameworks', 'DYLD_FRAMEWORK_PATH': '/Applications/Python 3.9/IDLE.app/Contents/Frameworks'})
Wen jetzt die Frage plagt, was man mit den gesetzten Systemvariablen machen könnte, wird sich den folgenden Befehl freuen:
Systemvariablen abfragen os.getenv(key)
Mit diesem Befehl erhält man Informationen über System-Variablen (ist abhängig zum Betriebssystem. Unter MacOS bekommt man über folgende Abfrage das HOME-Verzeichnis:
import os
print(os.name)
print(os.getcwd())
print(os.getenv('HOME'))
Als Rückgabe erhalten wir:
posix
/Users/axelp/Documents/Projekte/Python-lernen.de/Skripte
/Users/axelp
Verzeichnisinhalt auflisten os.listdir(Pfad)
Um den Inhalt eines Verzeichnisses auszulesen, gibt es den Befehl os.listdir(Pfad)
. Hiermit erhalten wir eine Liste von den Dateien aus dem angegebenen Pfad. Wenn kein Pfad angegeben wird, wird die Liste aus dem aktuellen Pfad erstellt:
import os
print(os.getcwd())
print(os.listdir())
Und als Ergebnis ein List-Objekt:
['datei1.pdf', 'datei2.txt', 'programm3.py']
Verzeichnis löschen über os.rmdir(Pfad)
Ein Verzeichnis wird über die Anweisung os.rmdir(Pfad)
gelöscht
Datei löschen über os.remove(Pfad)
Eine Datei wird über die Anweisung os.remove(Pfad)
gelöscht. Um Verzeichnisse zu löschen wird die Anweisung os.rmdir(Pfad)
benötigt. Über die Anweisung isfile()
und isdir()
kann im Vorfeld überprüft werden, ob eine Datei oder ein Verzeichnis vorliegt.
Verzeichnis oder Datei? os.path.isfile('Pfad') und os.path.isdir('Pfad')
Über die Abfrage können wir ermitteln, ob Verzeichnis oder Datei. Als Rückmeldung bekommen wir „True“ bzw. „False“.
import os
print(os.path.isfile('datei.pdf'))
print(os.path.isdir('datei.pdf'))
Datei umbenennen über os.rename(Alter_Name, Neuer_Name)
Über die Anweisung os.rename()
können sowohl Dateien wie auch Verzeichnisse umbenannt werden.
Systembefehle ausführen über os.system(Systembefehl)
Mit dem Befehl os.system(Systembefehl)
können Systembefehle ausgeführt werden. Wenn man das System kennt, dann passt alles. Soll aber das Python Programm auf allen Systemen laufen, sollte man das verwendete System abfragen und die entsprechenden Systembefehle dann passen ausführen lassen.
Schauen wir uns die Anweisung für den Mac an und aktivieren die Sprachausgabe beim Mac (die Standardmäßig installiert ist):
import os
os.system('say "Hallo Python"')
Lautsprecher aufdrehen und der Computer sollte nun laut und deutlich „Hallo Python“ von sich geben.