Auch Regular Expressions für die Verarbeitung von Strings gehören zur Standardausstattung einer Python-Installation. Nach dem Importieren des dazugehörigen Moduls stehen Methoden wie »search()
«
und »match()
«
zur Verfügung. Der Unterschied besteht darin, dass Match nur am Anfang eines Strings nachsieht, sein Pendant Search aber den ganzen String durchsucht. Die Anwendung sieht etwa so aus:
import re s = "Regulär ausgedrückt" m = re.search('(Reg.*) ', s) m.group(0) 'Regul\xc3\xa4r ' print m.group(0) Regulär
Wie man sieht, funktioniert das auch mit Umlauten, allerdings muss man dabei auf die richtige Zeichen-Codierung achten. Aktuelle Python-Versionen können mit UTF-8 umgehen, manchmal ist es aber erforderlich, Strings erst in die richtige Codierung zu wandeln, etwa mit der »unicode()
«
-Methode. Mehr dazu verrät das Python-Unicode-Howto. Das Encoding einer Python-Quelldatei lässt sich festlegen, indem man in der ersten Zeile (nach dem Aufruf des Interpreters) einen Kommentar in folgendem Format schreibt: »# encoding: utf-8
«
.
Für den Zugriff auf relationale Datenbanken bietet Python ein mehr oder weniger standardisiertes Interface über die DB-API 2.0 an, etwa für die Standards MySQL, PostgreSQL oder SQLite. Ein Beispiel für SQLite ist in Listing 3 zu sehen.
Listing 3
Zugriff auf SQLite
Die meisten Statements dürften sich für alle diejenigen selbst erklären, die schon einmal mit einer SQL-Datenbank gearbeitet haben. Interessant ist die Verwendung sogenannter Prepared Statements, vor allem beim Insert in Zeile 12. Insbesondere bei Webanwendungen ist dies ein Gegenmittel gegen SQL-Injections. Die Argumente sind in eine Tupel-Datenstruktur zu verpacken, was bei einem Tupel mit nur einem Element zu der etwas eigentümlichen Schreibweise mit einem abschließenden Komma führt.