35.2 Formatierte Bildschirmausgabe – pprint 

In der Standardbibliothek existiert das Modul pprint (für pretty print), das für eine formatierte Repräsentation eines Python-Datentyps auf dem Bildschirm verwendet werden kann. Das Modul macht insbesondere die Ausgabe komplexer Datentypen, zum Beispiel langer Listen, besser lesbar und bietet sich somit an, in einer interaktiven Debug-Sitzung zur Ausgabe verschiedener Werte verwendet zu werden.
Bevor Beispiele ausgeführt werden können, muss das Modul eingebunden werden:
>>> import pprint
Das Modul pprint enthält im Wesentlichen eine gleichnamige Funktion, die zur Ausgabe einer Instanz aufgerufen werden kann.
pprint(object, [stream, indent, width, depth], {compact})
Die Funktion pprint gibt die Instanz object, formatiert auf dem Stream stream, aus. Wenn Sie den Parameter stream nicht übergeben, wird in den Standardausgabestrom sys.stdout geschrieben. Über die Parameter indent, width und depth lässt sich die Formatierung der Ausgabe steuern. Dabei kann für indent die Anzahl der Leerzeichen übergeben werden, die für eine Einrückung verwendet werden sollen. Der Parameter indent ist mit 1 vorbelegt.
Über den optionalen Parameter width kann die maximale Anzahl an Zeichen angegeben werden, die die Ausgabe breit sein darf. Dieser Parameter ist mit 80 Zeichen vorbelegt.
Im folgenden Beispiel wird sys.path, die Liste der Standardpfade, mithilfe von pprint formatiert ausgegeben:
>>> import sys
>>> pprint.pprint(sys.path)
['',
'C:\\Program Files\\Python36\\python36.zip',
'C:\\Program Files\\Python36\\DLLs',
'C:\\Program Files\\Python36\\lib',
'C:\\Program Files\\Python36',
'C:\\Program Files\\Python36\\lib\\site-packages']
>>>
Zum Vergleich geben wir sys.path noch einmal unformatiert mit print aus:
>>> print(sys.path)
['', 'C:\\Program Files\\Python36\\python36.zip', 'C:\\Program Files\\Python36\\DLLs', 'C:\\Program Files\\Python36\\lib', 'C:\\Program Files\\Python36', 'C:\\Program Files\\Python36\\lib\\site-packages']
Der Parameter depth ist eine ganze Zahl und bestimmt, bis zu welcher Tiefe Unterinstanzen, beispielsweise also verschachtelte Listen, ausgegeben werden sollen.
Über den Schlüsselwortparameter compact lässt sich steuern, wie kompakt umfangreiche Strukturen (z. B. lange Listen) dargestellt werden. Wird hier True übergeben, wird beispielsweise nicht jedes Element von sys.path in eine eigene Zeile geschrieben.
Sollten Sie die Ausgabe von pprint weiterverarbeiten wollen, verwenden Sie die Funktion pformat, die die formatierte Repräsentation in Form eines Strings zurückgibt:
>>> s = pprint.pformat(sys.path)
>>> print(s)
['',
'C:\\Program Files\\Python36\\python36.zip',
'C:\\Program Files\\Python36\\DLLs',
'C:\\Program Files\\Python36\\lib',
'C:\\Program Files\\Python36',
'C:\\Program Files\\Python36\\lib\\site-packages']
Die Funktion pformat hat die gleiche Schnittstelle wie pprint – mit dem Unterschied, dass der Parameter stream fehlt.