Les Fichiers
Objets file.
f = open("/tmp/log","w") modes: read, write, append et + (rw), binary
Méthodes: close fileno flush isatty read readline readlines seek tell
truncate write writelines xreadlines Attributs: closed mode name softspace
Fichiers Itérables
f = open ("/var/log/meslogs") for l in f:
p = l.split()
if items[0]=="ERROR" :
s="Erreur source:"+p[1]+\
" code:"+p[2]+\
" note:"+" ".join(p[3:])
if p[2]=="FATAL": print "*"*len(s) print s
if p[2]=="FATAL": print "*"*len(s)
3
Laurent POINTAL - LIMSI COURS PYTHON
Fichiers Ailleurs
Création d'objets file avec os.popen(), os.fdopen(), méthode makefile() des objets socket.
Module sys, stdin, stdout, stderr.
Pseudo-fichiers en mémoire avec la classe StringIO du module StringIO.
import StringIO
pseudofic=StringIO.StringIO()
Module mmap - fichiers mappés en mémoire.
Module codecs, fonction open (classe EncodedFile).
4
Laurent POINTAL - LIMSI COURS PYTHON
Le module sys
sys.path - liste des chemins pour les modules.
sys.modules - dictionnaire des modules chargés..
sys.argv - liste des paramètres en ligne de commande (cf module getopt).
sys.stdin/stdout/stderr - fichiers d'entrée/sortie standards (utilisables directement, modifiables).
sys.exc_info() - (type, objet, pile d'appel) de l'exception en cours pour le thread.
5
Laurent POINTAL - LIMSI COURS PYTHON
Manipulations d'Objets
module copy - copies de surface ou en profondeur de conteneurs.
module pickle - sérialisation d'objets sous forme de flots binaires.
module shelve - persistance d'objets sérialisés dans une base de données dbm.
module new - création dynamique d'objets internes.
6
Laurent POINTAL - LIMSI COURS PYTHON
Manipulation de Textes
module string et méthodes des chaînes.
module pprint - formatage pour affichage propre (contenu de conteneurs, éventuellement imbriqués).
module re - expressions régulières.
module difflib - comparaison de textes.
module codecs et unicodedata.
module shlex - analyseur lexical.
modules locale et gettext.
7
Laurent POINTAL - LIMSI COURS PYTHON
Manipulation de flots Binaires
flot binaire = chaîne.
module array - tableaux 'C'.
module struct - accès à des structures 'C'.
module tiers xtruct - manipulation structures 'C'.
module zlib - compression.
modules base64, binhex, binascii.
8
Laurent POINTAL - LIMSI COURS PYTHON
Manipulation du Temps
Module time - fonctions de base.
Module calendar.
Module tiers mxDateTime - fonctions avancées.
Avec Python 2.3, module datetime.
Module sched - programmation d'actions.
Accès au Système
Module os - point d'accès aux fonctions système.
Environnement, utilisateur.
Fichiers bas niveau, pipes, terminaux.
Fichiers temporaires (+module tempfile).
Manipulation directory et fichiers dans le FS.
Lancement et contrôle de process externes (exec, popen, spawn, kill, system).
Module os.path - manipulation des chemins et noms de fichiers.
Module glob - pattern matching sur noms de fichiers.
Module shutil - manipulation fichiers de haut niveau.
Module filecmp - comparaison fichiers/répertoires.
Console
Module getpass. - saisie de mot de passe sans écho.
Module curses. - contrôle de la console pour gestion d'interface.
Module readline - édition en ligne de commande.
Module rlcompleter - complétion automatique.
Module cmd - création d'interpréteurs de ligne de commande.
11
Laurent POINTAL - LIMSI COURS PYTHON
Multitache
Données d'interprétation partagées via le Global Lock.
Module threading.
Classe Thread
Classes Lock et RLock- mutex.
Classe Event
Classe Condition - variable de condition.
Classe Semaphore Classe Timer
Module Queue - liste asynchrone (FIFO).
12
Laurent POINTAL - LIMSI COURS PYTHON
Communications Inter-Process
Mdule signal - support des signaux.
Module socket - accès programmation réseau bas niveau (module SocketServer).
Module select - gestion synchrone sockets, pipes.
Module asyncore - gestion asynchrone des sockets.
Module tiers twisted - framework très complet.
Protocole XMLRPC - client xmlrpclib et exemple de serveur.
Modules tiers pour CORBA, COM/DCOM, SOAP.
13
Laurent POINTAL - LIMSI COURS PYTHON
Internet
Protocoles applicatifs: HTTP, FTP, SMTP, IMAP, POP, telnet...
Interface applicatif CGI, gestion cookie.
Module webbrowser - accès au browser par défaut de l'utilisateur.
Manipulation des données (MIME, fichiers emails, encodages divers, URLs, XDR...)
Modules md5, sha...: cryptographie.
Texte structuré: HTML, flots XML avec SAX ou DOM, SGML.
14
Laurent POINTAL - LIMSI COURS PYTHON
Bases de Données
Bases clé valeur, utilisées comme des dictionnaires, modules anydbm (utilise whichdb), dbhash, gdbm, dbm.
Module bsddb.
Python Database API V2 - API standard pour les SGBD relationnelles.
Modules tiers pour MySQL, PostgreSQL, Oracle, DB2, Ingres, Informix, Interbase, Sybase, SapDB, SQLite…
Module tiers mxODBC - toute BD avec driver ODBC.
Modules tiers pour d'autres bases de données.
15
Laurent POINTAL - LIMSI COURS PYTHON
Génie Logiciel
Module unittest - organisation et déroulement de tests unitaires.
Module doctest - tests basés sur des informations dans la documentation en ligne.
Module tiers pychecker - contrôle statiques sur le code.
Module pydoc - extraction de la documentation en ligne.
16
Laurent POINTAL - LIMSI COURS PYTHON
Calcul / Algo
Module bisect - maintien de liste triée.
Module tiers Numerical Python (NumPy) Numeric réécrit en Numarray - calcul numérique, matrices, traitement d'image.
Module tiers Scientific Python Scientific - I/O, calcul numérique, algos scientifiques, visualisation.
Module tiers scipy - calcul numérique, algos scientifique.
Module tiers StatPy - calcul statistique.
Module tiers PIL (Python Imaging Library).
Autres (MatPy, AstroPy, biopython...).
Numeric
from Numeric import *
a = arange(24,typecode="f") print a [0.,1.,…,23.]
print a.shape (24,) a.shape = (2,12)
print len(a) 2 lst = a.tolist() b = add(a,1)
print b [[1.,…,12.],[13.,…,24.]]
c = fromstring(open("data").read(),"1") c.shape = (256,256)
c1 = clip(c,45,200)