Standard Library
Da der aktuelle Python Library Index als auch die Python Library Referenz sehr reichhaltig ist, kann ich nur einzelne Aspekte herausgreifen.
Operating System
sys
- Systemspezifische Parameter und Funktionen in sys
- die Kommandozeile: sys.argv
- Ausstieg aus Python: sys.exit([arg])
- Suchpfad für Module: sys.path
- Plattforminfo: sys.platform und insbesondere getwindowsversion()
- die Ausgabekanäle: sys.stdin, sys.stdout und sys.stderr
os
- betriebssystemunabhängige Funktionalität rund ums operating system in os
- Information zum aktuellen Prozeß und Benutzer
- lesen und setzen von Umgebungsvariablen: os.getenv("PATH") und os.putenv("LANG","de_DE")
- lesen der Prozess ID's
- setzen der os.umask(mask)
- Arbeiten mit Dateien und Direktories
- erhalte das aktuelle Arbeitsverzeichnis: os.getcwd()
- setzen des Modus und Owner/Group: os.chmod(path, mode) und chown(path, uid, gid)
- Links anlegen: os.symlink(src, dst) und os.hardlink(src,dst)
- Manipulation von Dateien und Verzeichnissen wie umbenennen und löschen
- Traversieren des Dateibaumes: os.listdir(path) und os.walk(top[,topdown=True])
- Prozessmanagment
- Einfluß auf Prozesse: os.kill..., os.nice(add) und os.fork...
- auf Kindprozesse warten : os.wait...
- Verschieden Systeminformationen
- low level Konstantenen gekapselt: os.curdir, os.sep, os.defpath , os.linesep und os.devnull
- Information zum aktuellen Prozeß und Benutzer
os.path
- Funktionen für Pfadnamen os.path
- Info über den Pfadnamen: os.path.basename(path), os.path.dirname(path) und os.path.split(path)
- Info über das referenzierte Ziel: os.path.exists(path)
- Manipulation des Pfadnames: os.path.abspath(path), os.path.join(path), os.path.normpath() und os.path.normcase(path), os.path.isabsolut(path), os.path.istfile(path), os.path.isdir(path) und os.path.ismount(path)
subprocess
- high level Funktionen für den Umgang mit Subprozessen in subprocess
- ersetzt os.system, os.spawn..., os.popen..., popen2... und commands...
Threads
thread
- thread bietet ein sehr einfaches Interface zu Threads und Locks
threading
- threading erlaubt den komfortablen Umgang Threads
- bietet Locks, Condition Variablen, Semaphoren, Events und Timer Objekte an
queue
- queue ist für viele Konsumer und Producer ausgelegt
- dient insbesondere der Kommunikation von Threads
multiprocessing
- neu mit Python 2.6
- multiprocessing besitzt das gleiche Interface wie threading, startet aber eine Prozess statt eines Thread
- ist auch auf Windows verfügbar
Kommandozeile
optparse
- optparse ist eine mächtiger Kommandozeilenparser, der dem älteren Kommandozeilenparser getopt vorzuziehen ist
- er erzeugt Usage- und Hilfenachrichten inklusive
Datum und Zeit
time
- time ermöglicht den einfachen Zugriff auf die Uhrzeit
- time.time() gibt die Sekunden seit der Epoche, time.asctime() die Zeit als String zurück
- darüber hinaus existieren weitere Methoden zur formatierten Ausgabe der Zeit
datetime
- datetime erlaubt komfortable Datum und Zeit Manipulationen
- Datum und Zeit Objekte können verrechnet und mittels Formatstrings ausgegeben werden
- das Modul unterstützt Zeitzonen
Dateien
shutil
- high level Datei Operationen in shutil
- Kopiere Dateien: shutil.copy...
- Manipuliere Dateibäume: shutil.copytree(src,dst), shutil.rmtree(src) und shutil.move(src, dst)
fnmatch
- Unix filename pattern matching fnmatch
- prüfe, ob ein Dateinamen einem gegeben Pattern genügt, und gib entweder den Dateinamen fnmatch oder eine Boolean fnmatchcase zurück
- belasse die Dateien in der Sequenz, die den Filter filter erfüllen
Persistenz
pickle / cpickle
- Serialisieren von Python Objekten um sie in Dateien zu schreiben in pickle bzw. cpickle
- Objekt Bytestrom: pickle.dump(object,fd)
- Bytestrom Objekt: pickle.load(fd)
- cpickle sollte pickle vorgezogen werden, das es schneller als pickle ist
- sqlite3 sollte [http://docs.python.org/lib/module-pickle.html][pickle]] vorgezogen werden
sqlite3
- neu mit Python 2.5
- leichtgewichtige Datenbank sqlite3, die keinen Serverprozess benötigt
- öffnen der Datenbank conn = sqlite3.connect(filename)
- Zugriff mittels eines Cursors: c=conn.cursor()
- absetzten von SQL Statements: c.execute(SQL-Statement)
- abspeichern der Modifikations: c.commit()
Strings
- die String Services zeichnen sich nicht durch ein klares Design aus
- ein Teil der String Funktionalität ist als built-in vorhanden, der Rest ist im gleichnamigen Modul enthalten
built-in
- die Basisfunktionalität findet sich unter Strings built-in
string
- in stringfinden sich weitere Funktionen rund um Strings
- Konstanten, die das Leben leichter machen: string.ascii_letters, ascii.digits, string.letters, string.lowercase, string.printable und string.uppercase
- erzeugen eines Übersetzungsstrings: string.maketrans(from, to)
re
- die mächtigste Manipulationsmöglichkeiten stehen mit regulär Expressions rebereit
- kompilieren von regulär Expressions um ein reguläre Expression Objekt zu erhalten: re.compile(str)
- Übereinstimmungen finden und ein Match Objekt erhalten: re.match(str), re.search(str), re.findall() und re.finditer()
- Auswerten des Match Objekts: group(), start(), end() und span()
- den String manipulieren: re.split(), re.sub() und re.subn()
Mathematik
math und cmath
math und cmath für complexe Zahlen erhalten die bekannten mathematischen Grundoperationen über die built-inFunktionen hinaus
random
- in randomsind die Funktionen um Zufallszahlen zu erzeugen
- Initialisieren den Zufallszahlengenerator: random.seed()
- Erhalte Zufallszahlen: random.randrange(start,stop) und random.choice(seq)
- Zufällige Permutation einer Liste: random.shuffle(x)
- einige Verteilungen aus der Stochastik
Internet
socket
- in socket werden die low level Funktionen zur Socketmanipulation zur Verfügung gestellt
- die bekannte Socket API für den Server socket(), bind(), listen(), accept() und den Client socket(), connect() steht zur Verfügung um TCP/UDP Verbindungen zu instanziieren
urllib
- urllib erlaubt den high level Umgang mit www Ressourcen
- urlopen(url) gibt ein Dateihandle auf eine Ressource zurück
- urlretrieve(url) gibt den Inhalt der Ressource zurück
- Python unterstützt eine Vielzahl von Internet Protokollen und Technologien Internet Protokolle, die socket vorraussetzen
- den Umgang mit den verschiedenen Datenformaten wird durch Datenformate im Internet abgedeckt
ssl
- mit Python 2.6 ist die ssl Unterstützung vollständig
- sowohl Python Clients wie auch Server können ssl sprechen und mit Zertifikaten umgehen
Server
SocketServer
- SocketServer bietet ein Framework für verschiedene Server (TCP und UDP ) und deren Request-Handler
- beim Instanziieren des Servers muß der Request Handler registriert werden, die die seine Funktionaliät in der handle() Methode anbietet
- die Request können auf einfache Weise mit den ThreadingMixIn bzw. ForkingMixIn in Threads oder Prozessen prozessiert werden
BaseHTTPServer
- BaseHttpServer ist eine spezieller SocketServer , der einen HTTP Server zu Verfügung stellt
- durch spezielle Handler SimpleHTTPServer bzw. CGIHTTPServer wird dieser zum HTTP bzw. CGI Server
Beispiele
- die Methoden string.maketrans und translate als built-in Methode für Strings bieten eine sehr komfortable und performante Schnittstelle, um Charakter eines Strings zu manipulieren;
schreibe ein Programm, das- das Charakter eines String auf andere umsetzt
- die gegebenen Charakter aus einem String entfernt
- nur die gegebenen Charakter in einem String behält
- eine sehr mächtige Methode ist os.walk;
- Wie kann die Ausgabe angepasst werden?
Weiterlesen...