Python für Systemadministratoren Grundkurs

os – Betriebssystem-Features

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die os-Bibliothek stellt betriebssystemspezifische Funktionen zur Verfügung. Das Tolle daran: Egal, ob Sie unter Windows, auf dem Mac oder mit einem Linux-System arbeiten – alle Funktionen funktionieren für alle Betriebssysteme. So können Sie einheitlich auf das Environment der Applikation lesend wie schreibend zugreifen oder auch Kommandozeilenbefehle aus Python heraus aufrufen.
08:15

Transkript

In dieser Lektion möchte ich Ihnen die OS-Bibliothek genauer vorstellen. OS steht für eine Abstraktion über betriebssystemspezifische Feature. Diese Features sind eben betriebssystemunabhängig, das heißt, unabhängig davon, ob Sie Ihren Python-Interpreter auf Mac, Windows oder Linux laufen lassen. Hier mal ein paar wichtige Konstanten und Funktionen. Durch "os.environ" bekommen Sie die Umgebung Ihres Skriptes raus, "os.sep" liefert Ihnen den betriebssystemunabhängigen Path Separator, also entweder das Slash oder Backslash. "os.devnull" steht für das sogenannte "Null device". Mit "os.getgid" bekommen Sie Ihre Group-ID. Mit "os.getlogin" Ihren Loginnamen, "getpid" die Prozess-ID, "getuid" die User-ID, mit "os.umask" können Sie die Maske vorgeben, mit der Ihre Dateien erzeugt werden, also welche Schreib- und Leseberechtigung Sie, Ihre Gruppe oder die Welt besitzen. Durch "os.chdir" wechseln Sie den Pfad, in dem Ihr Phyton-Interpreter läuft. "getcwd" gibt Ihnen das aktuelle Arbeitsverzeichnis aus, durch "os.getenv" können Sie eine Variable des Environment abfragen. "os.chmod" ändert Ihnen für den Pfad den Mode, also die Berechtigungen. "os.chown" steht für "os.change owner", setzt für alten Pfad eine neue User-ID und Group-ID. "os.listdir" gibt Ihnen, bezogen auf path, alle Directorys und Files dieses Paths aus. "os.mkdir" erlaubt Ihnen, neuen Pfad zu erzeugen. "os.remove" löscht diesen wieder. "os.rename" erlaubt Ihnen, einen Pfad umzubenennen und "os.rmdir" entfernt natürlich einen Pfad. So, das waren viele Namen. Jetzt will ich alles wieder in der Anwendung zeigen. Ich bin diesmal im Verzeichnis "python" meines Homes. Ich importiere "os". Und jetzt kann ich z. B. rausbekommen, wie sieht der Path-Separator unter Linux aus. Sie sehen, das ist ein Forward-Slash [/]. "os.devnull" ist unter Linux "/dev/null", unter Windows wäre es null. Das kann ich natürlich jetzt nicht zeigen. Dann ein paar Variablen: "os.getgid" gibt meine Group-ID aus; meinen Loginnamen; dann meine Prozess-ID und meine User-ID. Ok. Weiter geht's. Mit "os.environ" kriege ich das ganze Environment heraus. Und Sie sehen bzw. Sie sehen hier viel zu viel, im Wesentlichen ist es ein Dictionary. Sie sehen, das geht hier mit geschweiften Klammern zu und hier oben mit geschweiften Klammern auf. Und schauen wir uns mal einen Wert an. Dem Key "XAUTHLOCALHOSTNAME" ist der Wert "seminar" zugeordnet. Das ist also ein Dictionary. Das ist also viel zu viel des Guten. Daher können wir auch nach einem expliziten Wert nachfragen. Das ist ja ein Dictionary. In diesem Fall suche ich nach der Umgebungsvariable "EDITOR" und will mir den Wert ausgeben. Sie sehen, die Umgebungsvariable "EDITOR" gibt es zwar, aber die hat bei mir keinen Wert bzw. es ist ein Wert vom leeren String. Das kann ich mir auch über "os.getenv" ausgeben lassen. Sie haben sozusagen zwei Möglichkeiten. "env". So. Aber jetzt kann ich ihn auch setzen, zum Beispiel "= kate". Da sehen Sie, da steht jetzt bei mir jetzt "kate" drin. "kate" ist jetzt mein Default-Editor. Wie geht es weiter? Mit "os.umask" erhalte ich die "umask(002)". Die ich speichere ich mir hier in einem Wert. Und Sie sehen sie hier drin: 18. Das ist der Hexadezimalwert. Und die kann ich z. B. jetzt verwenden, um die umask auf die "(022)" bzw. auf die 18 Hexadezimal zu setzen, was bedeutet, dass jede Datei, die ich erzeuge, mit diesen Berechtigungen gesetzt wird. Ok. Das können wir noch weiter machen mit dem OS-Modul. Können z. B. uns das aktuelle Arbeitsverzeichnis ausgeben lassen, in dem ich grad mit meinem Python-Interpreter stehe. "getcwd". So nützt mir das nicht viel, also speichere ich mir den Wert ab, den brauche ich noch ein paar Mal. Und jetzt kann ich zum Beispiel... Bevor ich das mache, noch einen kleinen Zwischenschritt. Ich kann aber auch in das Verzeichnis wechseln, in dem mein "HOME" ist. Mein "HOME" ist "os.getenv", da wähle ich die Umgebungsvariable "HOME" aus. Sie sehen es, das ist "/home/rainer". Ok. Und ich sag: Wechsle nach "/home/rainer". Und wenn ich jetzt "os.getcwd" ausgebe, sehen Sie, ich stehe ich in "/home/rainer" und nicht mehr in "home/rainer/python". Da kann ich aber relativ angenehm wieder zurückwechseln, indem ich "os.chdir" mache auf "cwd". Und in "cwd" habe ich den Wert ja gespeichert. "/home/rainer/python". Jetzt kommen noch ein paar Dateimanipulationen. Das ist ein bisschen arg länglich, das maus ich mir lieber mal ab. Was mache ich hier? Ich erzeuge einen File-Handle auf die Datei "cwd". "cwd" steht für "/home/rainer/python" und das File-Handle soll heißen: "/home/rainer/python/dummyFile.txt" Und durch das, dass ich jetzt "empty" reinschreibe, schreibe ich den String "empty" in die Datei "home/rainer/python/dummyFile.txt" rein. Jetzt kann ich noch Sachen machen, wie z. B. die Berechtigungen der Datei anpassen, wie "os.chmod (f,755)". 755 steht unter Linux für "read, write, execute", "read, execute" und "read, execute". Ich kann auch den Benutzer anpassen: "os.chown", von "f", das ist das File-Handle, auf "1000,1000". Kann ich nicht. Warum nicht? Weil ich nicht die Berechtigung dazu habe. Sie sehen aber, der Python-Interpreter versucht diesen Befehl auszuführen und es geht nicht gut, weil ich die Berechtigung dazu nicht habe. Ich hätte die Shell z. B. als "route" starten müssen. Ja, und ich habe eigentlich keine Lust, soviel Dateien ohne Sinn und Zweck rumliegen zu lassen, also lösche ich sie wieder. Mit "os.listdir" kann ich mir ein Verzeichnis ausgeben. Und das sehen Sie hier, Current Working Directory steht auf "/home/rainer/python". Da ist nichts drin. Das ist jetzt nicht so spannend. Das sollten wir vielleicht ändern. Ändern tun wir es dadurch, dass wir die Datei bzw. ein Verzeichnis anlegen durch "os.mkdir", und wenn ich jetzt "os.listdir" aufrufe, sehen Sie, jetzt habe ich ein Verzeichnis drin, das "TEST" heißt. Das kann ich auch umbenennen durch "os.rename". Also "os.rename". Das ist der alte Name, das ist der neue Name. Und wenn ich jetzt "os.listdir" aufrufe, sehen Sie, aus "TEST" wird "TEST2". Ja. Ordnung geht vor. Also lösche ich das Verzeichnis wieder. Jetzt ist es wieder weg. In dieser Lektion habe ich Ihnen das OS-Modul genauer vorgestellt. Das OS-Modul erlaubt Ihnen, betriebssystemspezifische Feature in einer plattformunabhängigen Weise anzusprechen.

Python für Systemadministratoren Grundkurs

Lernen Sie die zahlreichen Funktionen der Kernsprache und die wichtisgten Bibliotheken für den Administrationsalltag kennen.

1 Std. 53 min (22 Videos)
Derzeit sind keine Feedbacks vorhanden...
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:10.03.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!