Inhaltsverzeichnis[Anzeigen]

 

 

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

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 MOVED TO... Bytestrom: pickle.dump(object,fd)
    • Bytestrom MOVED TO... Objekt: pickle.load(fd)
    • TIP 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

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

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
    • HAND 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;
    • HAND Wie kann die Ausgabe angepasst werden?

 

Anhänge:
Diese Datei herunterladen (standardLibrary.py)standardLibrary.py[ ]1 KB

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode