4 Betriebssystemfunktionen nutzen

4.1 Einführung in Betriebssystemfunktionen

import os

# Betriebssystemfunktionen
print(os.getcwd())  # aktuelles Arbeitsverzeichnis
os.chdir('C:/')  # Arbeitsverzeichnis wechseln
print(os.getcwd())

os.mkdir('newdir')  # Verzeichnis erstellen
os.rename('newdir', 'newdir2')  # Verzeichnis umbenennen
os.rmdir('newdir2')  # Verzeichnis löschen

# Interaktion mit dem Betriebssystem über Python
os.system('notepad.exe')  # ausführbare Dateien öffnen
os.startfile('C:/Users/User/Desktop/file.txt')
os.startfile('https://www.google.com')  # URLs in Standardbrowser öffnen

In diesem Beispiel haben wir eine Einführung in Betriebssystemfunktionen und Interaktion mit dem Betriebssystem über Python gegeben.

Das os-Modul bietet eine Reihe von Funktionen, die es uns ermöglichen, mit dem Betriebssystem zu interagieren. Wir haben gezeigt, wie man das aktuelle Arbeitsverzeichnis abruft, das Arbeitsverzeichnis ändert, Verzeichnisse erstellt, umbenennt und löscht.

Mit dem os.system-Befehl können wir ausführbare Dateien öffnen. Wir haben gezeigt, wie man die Anwendung “Notepad” öffnet und wie man eine Textdatei auf dem Desktop öffnet. Außerdem haben wir gezeigt, wie man eine URL im Standardbrowser öffnet.

4.2 Das os-Modul

import os

# Einführung in das os-Modul
print(os.name)  # gibt den Namen des Betriebssystems zurück (z.B. 'nt' für Windows)
print(os.getcwd())  # gibt das aktuelle Arbeitsverzeichnis zurück
print(os.listdir())  # gibt eine Liste aller Dateien und Verzeichnisse im aktuellen Verzeichnis zurück

# Wichtige Funktionen im os-Modul
print(os.path.abspath('file.txt'))  # gibt den absoluten Pfad der Datei zurück
print(os.path.isfile('file.txt'))  # prüft, ob es sich bei 'file.txt' um eine Datei handelt
print(os.path.isdir('directory'))  # prüft, ob es sich bei 'directory' um ein Verzeichnis handelt
print(os.path.exists('file.txt'))  # prüft, ob 'file.txt' existiert
print(os.path.join('C:', 'Users', 'User', 'Desktop', 'file.txt'))  # erstellt einen Pfad aus seinen Teilen

Das os-Modul ist ein in Python integriertes Modul, das es uns ermöglicht, mit dem Betriebssystem zu interagieren. Mit dem Modul können wir beispielsweise das aktuelle Arbeitsverzeichnis abrufen, Verzeichnisse und Dateien erstellen, umbenennen und löschen sowie auf systemspezifische Funktionen zugreifen.

Wir haben gezeigt, wie man den Namen des Betriebssystems abruft, das aktuelle Arbeitsverzeichnis und eine Liste aller Dateien und Verzeichnisse im aktuellen Verzeichnis zurückgibt.

Wir haben auch einige wichtige Funktionen im os-Modul vorgestellt, wie zum Beispiel os.path.abspath(), um den absoluten Pfad einer Datei zu erhalten, os.path.isfile() und os.path.isdir(), um zu prüfen, ob es sich um eine Datei oder ein Verzeichnis handelt, os.path.exists() um zu prüfen, ob eine Datei oder ein Verzeichnis existiert und os.path.join(), um einen Pfad aus seinen Teilen zu erstellen.

4.3 Umgebungsvariablen

import os

# Zugriff auf Umgebungsvariablen mit os.environ
print(os.environ['USER'])  # gibt den Wert der Umgebungsvariable 'USER' zurück
print(os.environ.get('HOME'))  # gibt den Wert der Umgebungsvariable 'HOME' zurück oder None, falls sie nicht existiert
print(os.environ)  # gibt alle Umgebungsvariablen als Dictionary zurück

# Setzen, Ändern und Löschen von Umgebungsvariablen
os.environ['TEST'] = '123'  # setzt die Umgebungsvariable 'TEST' auf '123'
os.environ['TEST'] = '456'  # ändert den Wert der Umgebungsvariable 'TEST' auf '456'
del os.environ['TEST']  # löscht die Umgebungsvariable 'TEST'

In diesem Beispiel haben wir gezeigt, wie man mit Umgebungsvariablen in Python arbeitet.

Das os-Modul bietet eine Möglichkeit, auf Umgebungsvariablen zuzugreifen, indem es ein Dictionary mit dem Namen environ bereitstellt. Wir haben gezeigt, wie man den Wert einer bestimmten Umgebungsvariable mit os.environ['VAR'] abruft oder den Wert einer Umgebungsvariable mithilfe von os.environ.get('VAR') abruft, wobei None zurückgegeben wird, wenn die Umgebungsvariable nicht existiert.

Wir haben auch gezeigt, wie man Umgebungsvariablen setzt, ändert und löscht. Mit os.environ['VAR'] = 'value' kann man eine neue Umgebungsvariable setzen oder den Wert einer vorhandenen Variable ändern. Mit del os.environ['VAR'] kann man eine Umgebungsvariable löschen.

4.4 Datei- und Verzeichnisoperationen

import os

# Erstellen, Lesen, Schreiben und Löschen von Dateien
with open('test.txt', 'w') as f:
    f.write('Hello, world!')
with open('test.txt', 'r') as f:
    content = f.read()
print(content)
os.remove('test.txt')

# Erstellen, Umbenennen und Löschen von Verzeichnissen
os.mkdir('newdir')
os.rename('newdir', 'newdir2')
os.rmdir('newdir2')

# Arbeiten mit Pfaden und Dateinamen
print(os.path.join('dir1', 'dir2', 'file.txt'))  # Erzeugt 'dir1/dir2/file.txt'
print(os.path.abspath('test.txt'))  # Gibt den absoluten Pfad von 'test.txt' zurück
print(os.path.splitext('test.txt'))  # Gibt Tupel aus Dateiname und Dateiendung zurück

In diesem Beispiel haben wir gezeigt, wie man Datei- und Verzeichnisoperationen in Python durchführt.

Mit dem open()-Befehl können wir Dateien erstellen, öffnen, lesen, schreiben und schließen. Wir haben gezeigt, wie man eine Textdatei erstellt, in die Datei schreibt, die Datei liest und die Datei löscht.

Mit dem os-Modul können wir Verzeichnisse erstellen, umbenennen und löschen. Wir haben gezeigt, wie man ein Verzeichnis erstellt, umbenennt und löscht.

Mit dem os.path-Modul können wir Pfade und Dateinamen verarbeiten. Wir haben gezeigt, wie man Pfade und Dateinamen kombiniert, den absoluten Pfad einer Datei ermittelt und die Dateiendung extrahiert.

4.5 Prozessverwaltung

import os
import subprocess

# Starten und Beenden von Prozessen mit os.system und subprocess
os.system('notepad.exe')  # startet den Editor Notepad
subprocess.run(['notepad.exe', 'test.txt'])  # startet den Editor Notepad mit der Datei test.txt

# Kommunikation mit Prozessen über Pipes
result = subprocess.run(['ping', '-c', '3', 'google.com'], capture_output=True)
print(result.stdout.decode())  # gibt den Ausgabestring des Ping-Befehls aus

# Signale und Prozessablaufsteuerung
subprocess.run(['sleep', '10'])  # führt einen Prozess aus, der 10 Sekunden schläft
subprocess.Popen(['sleep', '10'])  # führt einen Prozess aus, der 10 Sekunden schläft und gibt die Kontrolle an das Hauptprogramm zurück

In diesem Beispiel haben wir gezeigt, wie man Prozesse in Python startet und beendet und wie man mit ihnen über Pipes kommuniziert.

Mit os.system() und subprocess.run() können wir externe Programme starten. Wir haben gezeigt, wie man den Notepad-Editor startet und wie man ihn mit einer bestimmten Datei öffnet.

Mit subprocess.run() können wir auch die Ausgabe des Prozesses abfangen und mit ihr arbeiten, z.B. indem wir sie dekodieren und ausgeben.

Mit subprocess.Popen() können wir einen Prozess starten und die Kontrolle an das Hauptprogramm zurückgeben, während der Prozess im Hintergrund ausgeführt wird.

In Python können wir auch Signale an Prozesse senden und den Ablauf von Prozessen steuern. Dies wird in diesem Beispiel nicht gezeigt.

4.6 Zugriffsrechte und Dateiattribute

import os

# Überprüfen und Ändern von Datei- und Verzeichnisberechtigungen
os.chmod('test.txt', 0o777)  # setzt die Berechtigungen für die Datei test.txt auf rwxrwxrwx
print(os.stat('test.txt').st_mode)  # gibt die Berechtigungen für die Datei test.txt zurück

# Ändern von Datei- und Verzeichniseigentümern
os.chown('test.txt', 1000, 1000)  # setzt den Besitzer und die Gruppe für die Datei test.txt auf UID 1000 und GID 1000
print(os.stat('test.txt').st_uid)  # gibt die UID des Besitzers für die Datei test.txt zurück
print(os.stat('test.txt').st_gid)  # gibt die GID der Gruppe für die Datei test.txt zurück

In diesem Beispiel haben wir gezeigt, wie man Zugriffsrechte und Dateiattribute in Python überprüft und ändert.

Mit os.chmod() können wir die Zugriffsrechte für eine Datei oder ein Verzeichnis ändern. Wir haben gezeigt, wie man die Berechtigungen für eine Datei auf rwxrwxrwx setzt und wie man die aktuellen Berechtigungen für eine Datei abruft.

Mit os.chown() können wir den Besitzer und die Gruppe einer Datei oder eines Verzeichnisses ändern. Wir haben gezeigt, wie man den Besitzer und die Gruppe für eine Datei auf UID 1000 und GID 1000 setzt und wie man die aktuellen Besitzer- und Gruppen-IDs für eine Datei abruft.

4.7 Plattformübergreifende Funktionen und Portabilität

import os
import sys

# Erkennen des Betriebssystems mit os.name und sys.platform
print(os.name)  # gibt den Namen des Betriebssystems aus (z.B. 'nt' für Windows)
print(sys.platform)  # gibt den Namen des Betriebssystems aus (z.B. 'win32' für Windows)

# Verwenden plattformunabhängiger Funktionen für größere Portabilität
path = os.path.join('dir1', 'dir2', 'file.txt')  # erstellt einen plattformunabhängigen Pfad (z.B. 'dir1/dir2/file.txt' auf Unix-Systemen oder 'dir1\dir2\file.txt' auf Windows-Systemen)
print(path)

In diesem Beispiel haben wir gezeigt, wie man plattformübergreifende Funktionen in Python verwendet, um die Portabilität von Code zwischen verschiedenen Betriebssystemen zu erhöhen.

Mit os.name und sys.platform können wir das aktuelle Betriebssystem erkennen. Wir haben gezeigt, wie man den Namen des Betriebssystems ausgibt, z.B. nt für Windows oder posix für Unix-Systeme.

Mit os.path.join() können wir plattformunabhängige Pfade erstellen, die auf verschiedenen Betriebssystemen funktionieren. Wir haben gezeigt, wie man einen Pfad aus mehreren Teilen erstellt, z.B. dir1/dir2/file.txt auf Unix-Systemen oder dir1\dir2\file.txt auf Windows-Systemen.

4.8 Das os.path-Modul

import os

# Manipulation von Pfaden und Dateinamen
print(os.path.abspath('test.txt'))  # gibt den absoluten Pfad der Datei test.txt zurück
print(os.path.basename('/home/user/documents/test.txt'))  # gibt den Dateinamen 'test.txt' zurück
print(os.path.dirname('/home/user/documents/test.txt'))  # gibt das Verzeichnis '/home/user/documents' zurück
print(os.path.join('/home', 'user', 'documents', 'test.txt'))  # gibt den plattformunabhängigen Pfad '/home/user/documents/test.txt' zurück

# Überprüfen von Pfad- und Dateiinformationen
print(os.path.exists('/home/user/documents/test.txt'))  # gibt True zurück, wenn die Datei oder das Verzeichnis existiert
print(os.path.isdir('/home/user/documents'))  # gibt True zurück, wenn es sich um ein Verzeichnis handelt
print(os.path.isfile('/home/user/documents/test.txt'))  # gibt True zurück, wenn es sich um eine Datei handelt

In diesem Beispiel haben wir gezeigt, wie man das os.path-Modul verwendet, um Pfade und Dateinamen in Python zu manipulieren und Pfad- und Dateiinformationen zu überprüfen.

Mit os.path.abspath() können wir den absoluten Pfad einer Datei oder eines Verzeichnisses ermitteln. Wir haben gezeigt, wie man den absoluten Pfad der Datei test.txt ermittelt.

Mit os.path.basename() können wir den Dateinamen aus einem Pfad extrahieren. Wir haben gezeigt, wie man den Dateinamen test.txt aus dem Pfad /home/user/documents/test.txt extrahiert.

Mit os.path.dirname() können wir das Verzeichnis aus einem Pfad extrahieren. Wir haben gezeigt, wie man das Verzeichnis /home/user/documents aus dem Pfad /home/user/documents/test.txt extrahiert.

Mit os.path.join() können wir plattformunabhängige Pfade aus verschiedenen Teilen erstellen. Wir haben gezeigt, wie man den Pfad /home/user/documents/test.txt aus den Teilen /home, user, documents und test.txt erstellt.

Mit os.path.exists() können wir überprüfen, ob eine Datei oder ein Verzeichnis existiert. Wir haben gezeigt, wie man überprüft, ob die Datei /home/user/documents/test.txt existiert.

Mit os.path.isdir() und os.path.isfile() können wir überprüfen, ob es sich bei einem Pfad um ein Verzeichnis oder eine Datei handelt. Wir haben gezeigt, wie man überprüft, ob /home/user/documents ein Verzeichnis und /home/user/documents/test.txt eine Datei ist.