Rheinwerk Computing < openbook >

 
Inhaltsverzeichnis
1 Einleitung
2 Die Programmiersprache Python
Teil I Einstieg in Python
3 Erste Schritte im interaktiven Modus
4 Der Weg zum ersten Programm
5 Kontrollstrukturen
6 Dateien
7 Das Laufzeitmodell
8 Funktionen, Methoden und Attribute
9 Informationsquellen zu Python
Teil II Datentypen
10 Das Nichts – NoneType
11 Operatoren
12 Numerische Datentypen
13 Sequenzielle Datentypen
14 Zuordnungen
15 Mengen
16 Collections
17 Datum und Zeit
18 Aufzählungstypen – Enum
Teil III Fortgeschrittene Programmiertechniken
19 Funktionen
20 Modularisierung
21 Objektorientierung
22 Ausnahmebehandlung
23 Iteratoren
24 Kontextobjekte
25 Manipulation von Funktionen und Methoden
Teil IV Die Standardbibliothek
26 Mathematik
27 Kryptografie
28 Reguläre Ausdrücke
29 Schnittstelle zu Betriebssystem und Laufzeitumgebung
30 Kommandozeilenparameter
31 Dateisystem
32 Parallele Programmierung
33 Datenspeicherung
34 Netzwerkkommunikation
35 Debugging und Qualitätssicherung
36 Dokumentation
Teil V Weiterführende Themen
37 Anbindung an andere Programmiersprachen
38 Distribution von Python-Projekten
39 Grafische Benutzeroberflächen
40 Python als serverseitige Programmiersprache im WWW – ein Einstieg in Django
41 Wissenschaftliches Rechnen
42 Insiderwissen
43 Von Python 2 nach Python 3
A Anhang
Stichwortverzeichnis

Download:
- Beispielprogramme, ca. 464 KB

Jetzt Buch bestellen
Ihre Meinung?

Spacer
<< zurück
Python 3 von Johannes Ernesti, Peter Kaiser
Das umfassende Handbuch
Buch: Python 3

Python 3
Pfeil 29 Schnittstelle zu Betriebssystem und Laufzeitumgebung
Pfeil 29.1 Funktionen des Betriebssystems – os
Pfeil 29.1.1 environ
Pfeil 29.1.2 getpid()
Pfeil 29.1.3 cpu_count()
Pfeil 29.1.4 system(cmd)
Pfeil 29.1.5 popen(command, [mode, buffering])
Pfeil 29.2 Zugriff auf die Laufzeitumgebung – sys
Pfeil 29.2.1 Kommandozeilenparameter
Pfeil 29.2.2 Standardpfade
Pfeil 29.2.3 Standard-Ein-/Ausgabeströme
Pfeil 29.2.4 Das Programm beenden
Pfeil 29.2.5 Details zur Python-Version
Pfeil 29.2.6 Details zum Betriebssystem
Pfeil 29.2.7 Hooks
 
Zum Seitenanfang

29    Schnittstelle zu Betriebssystem und Laufzeitumgebung Zur vorigen ÜberschriftZur nächsten Überschrift

Um Ihre Programme mit dem Betriebssystem interagieren zu lassen, auf dem sie ausgeführt werden, benötigen Sie Zugriff auf dessen Funktionen. Ein Problem dabei ist, dass sich die verschiedenen Betriebssysteme teilweise sehr stark in ihrem Funktionsumfang und in der Art unterscheiden, wie die vorhandenen Operationen verwendet werden. Python wurde aber von Grund auf als plattformübergreifende Sprache konzipiert. Um auch Programme, die auf Funktionen des Betriebssystems zurückgreifen müssen, auf möglichst vielen Plattformen ohne Änderungen ausführen zu können, hat man eine Schnittstelle geschaffen, die einheitlichen Zugriff auf Betriebssystemfunktionen bietet. Im Klartext bedeutet dies, dass Sie durch die Benutzung dieser einheitlichen Schnittstelle Programme schreiben können, die plattformunabhängig bleiben, selbst wenn sie auf Betriebssystemfunktionen zurückgreifen.

Diese Schnittstelle wird durch die Module os und sys implementiert, mit denen wir uns in den nächsten Abschnitten beschäftigen werden.

 
Zum Seitenanfang

29.1    Funktionen des Betriebssystems – os Zur vorigen ÜberschriftZur nächsten Überschrift

Mit dem os-Modul können Sie auf eine Vielzahl von Betriebssystemoperationen zugreifen. Da die gebotenen Funktionen sehr umfangreich sind und zu einem großen Teil nur selten gebraucht werden, beschränken wir uns hier auf eine nützliche Teilmenge.

Das Modul os beinhaltet einige Funktionen, die sich auf das Dateisystem beziehen, sowie das Submodul os.path für die Manipulation und Verarbeitung von Pfadnamen. Dies wird Thema der Abschnitte 31.1 und 31.2 in Kapitel 31, »Dateisystem«, sein.

Das Modul os hat eine eigene Exception-Klasse namens os.error. Immer wenn Sie Fehler innerhalb dieses Moduls abfangen möchten, können Sie os.error nutzen. Ein alternativer Name für die Fehlerklasse ist OSError.

[»]  Hinweis

Seit Python 3.0 wird streng zwischen Text und Daten durch die Datentypen str und bytes unterschieden, wie Sie in Kapitel 13, »Sequenzielle Datentypen«, gelernt haben. Alle Methoden und Funktionen, die von os bereitgestellt werden und str-Objekte als Parameter akzeptieren, können stattdessen auch mit bytes-Objekten gerufen werden. Allerdings ändert sich damit auch der Rückgabewert entsprechend, denn anstelle von Strings werden dann bytes-Objekte zurückgegeben.

Kurz: str rein – str raus; bytes rein – bytes raus.

Um die folgenden Beispielprogramme ausführen zu können, muss zunächst das Modul os eingebunden werden:

>>> import os
 
Zum Seitenanfang

29.1.1    environ Zur vorigen ÜberschriftZur nächsten Überschrift

Enthält ein Dictionary, mit dem auf die Umgebungsvariablen, die für unser Programm vom Betriebssystem bereitgestellt wurden, zugegriffen werden kann. Beispielsweise lässt sich auf vielen Plattformen mit os.environ['HOME'] der Ordner für die Dateien des aktiven Benutzers ermitteln. Die folgenden Beispiele zeigen den Wert von os.environ['HOME'] auf einem Windows- und einem Linux-Rechner:

>>> print(os.environ['HOME'])
C:\Dokumente und Einstellungen\username
>>> print(os.environ['HOME'])
/home/username

Sie können die Werte des os.environ-Dictionarys auch verändern, was allerdings auf bestimmten Plattformen zu Problemen führen kann und deshalb mit Vorsicht zu genießen ist.

 
Zum Seitenanfang

29.1.2    getpid() Zur vorigen ÜberschriftZur nächsten Überschrift

Der Python-Prozess, der das aktuell laufende Programm ausführt, hat eine eindeutige Identifikationsnummer. Sie lässt sich mit os.getpid() ermitteln:

>>> os.getpid()
1360

Diese Funktion ist nur unter Windows- und Unix-Systemen verfügbar.

 
Zum Seitenanfang

29.1.3    cpu_count() Zur vorigen ÜberschriftZur nächsten Überschrift

Gibt die Anzahl der Prozessoren des Computers zurück. Dabei werden virtuelle Kerne als eigene Prozessoren gezählt.

>>> os.cpu_count()
8

Das System, auf dem diese Zeile ausgeführt wurde, verfügt beispielsweise über einen Prozessor mit vier Kernen, die jeweils zwei virtuelle Kerne haben.

 
Zum Seitenanfang

29.1.4    system(cmd) Zur vorigen ÜberschriftZur nächsten Überschrift

Mit os.system können Sie beliebige Kommandos des Betriebssystems so ausführen, als ob Sie es in einer echten Konsole tun würden. Beispielsweise lassen wir uns mit folgendem Beispiel einen neuen Ordner mit dem Namen test_ordner über das mkdir-Kommando anlegen:

>>> os.system("mkdir test_ordner")
0

Der Rückgabewert von os.system ist der Status-Code, mit dem das aufgerufene Programm beendet wurde, in diesem Fall 0, was Erfolg bedeutet.

Ein Problem der os.system-Funktion ist, dass die Ausgabe des aufgerufenen Programms nicht ohne Weiteres ermittelt werden kann. Für solche Zwecke eignet sich die Funktion os.popen.

 
Zum Seitenanfang

29.1.5    popen(command, [mode, buffering]) Zur vorigen ÜberschriftZur nächsten Überschrift

Mit der Funktion os.popen werden beliebige Befehle wie auf einer Kommandozeile des Betriebssystems ausgeführt. Die Funktion gibt ein dateiähnliches Objekt[ 121 ](Ein dateiähnliches Objekt bietet die gleiche Schnittstelle wie ein Dateiobjekt an. Die Daten müssen jedoch nicht in einer Datei gelesen werden, sondern können beispielsweise auch im Arbeitsspeicher liegen oder über eine Netzwerkverbindung gelesen werden. ) zurück, mit dem Sie auf die Ausgabe des ausgeführten Programms zurückgreifen können. Der Parameter mode gibt wie bei der Built-in Function open an, ob das Dateiobjekt lesend ("r") oder schreibend ("w") geöffnet werden soll. Bei schreibendem Zugriff können Daten an das laufende Programm übergeben werden.

Im folgenden Beispiel nutzen wir das Windows-Kommando dir, um eine Liste der Dateien und Ordner unter C:\ zu erzeugen:[ 122 ](Der Parameter /B des dir-Kommandos sorgt dafür, dass nur eine Liste der Dateien und Verzeichnisse ohne Zusatzinformationen erzeugt wird. )

>>> ausgabe = os.popen("dir /B C:\\")
>>> dateien = [zeile.strip() for zeile in ausgabe]
>>> dateien
['AUTOEXEC.BAT', 'CONFIG.SYS', 'Dokumente und Einstellungen', 'Programme',
'WINDOWS']

Die genaue Bedeutung von mode und buffering können Sie in Abschnitt 6.4.1 über den Umgang mit Dateien nachlesen.

[»]  Hinweis

Das Modul os stellt eine Reihe von Funktionen zur Verfügung, mit denen auf das Dateisystem zugegriffen werden kann, die wir in Abschnitt 31.1, »Zugriff auf das Dateisystem mit os«, besprechen.

 


Ihre Meinung

Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.

<< zurück
 Zum Rheinwerk-Shop
Zum Rheinwerk-Shop: Python 3 Python 3
Jetzt Buch bestellen

 Buchempfehlungen
Zum Rheinwerk-Shop: Einstieg in Python
Einstieg in Python


Zum Rheinwerk-Shop: Python. Der Grundkurs
Python. Der Grundkurs


Zum Rheinwerk-Shop: Algorithmen mit Python
Algorithmen mit Python


Zum Rheinwerk-Shop: Objektorientierte Programmierung
Objektorientierte Programmierung


Zum Rheinwerk-Shop: Raspberry Pi. Das umfassende Handbuch
Raspberry Pi. Das umfassende Handbuch


Zum Rheinwerk-Shop: Roboter-Autos mit dem Raspberry Pi
Roboter-Autos mit dem Raspberry Pi


Zum Rheinwerk-Shop: Neuronale Netze programmieren mit Python
Neuronale Netze programmieren mit Python


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
InfoInfo

 
 


Copyright © Rheinwerk Verlag GmbH 2020
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

 
[Rheinwerk Computing]

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern