Re: Pour un bon départ en Python

Pàgina inicial

Reply to this message
Autor: Frédéric
Data:  
A: ML Guilde
Assumpte: Re: Pour un bon départ en Python
On Tuesday 15 May 2007 02:29, Olivier Guerrier wrote:

> J'ai un petit projet a réaliser, et j'ai envie d'en profiter pour me
> mettre à Python. Je précise que si je me débrouille plutôt bien en
> programmation impérative (C, php, scripts, etc...) je maîtrise peu la
> programmation objet (un peu de C++, il y a longtemps), et je n'y connais
> _rien_ en python...


Très bonne idée :o)

> Plutôt que de partir bille en tête et me vautrer, je préfére poser
> quelques questions, avant de partir bille en tête et me va.... :)
>
> Les principales questions que je me pose concernent les librairies: où
> les trouver ? comment choisir entre 2 qui font (ou ont l'air de faire)
> la même chose ? y'a t'il des pièges à éviter dans le choix d'une
> librairie ? etc ... Plutôt que de partir dans le vague, je vais
> détailler un peu mon projet, histoire de discuter sur du concret:
>
> Interface: ligne de commande (démon)
> Synopsis:
> - le programme récupère ses paramètres d'une base de données SQL.
> - Il scanne un compte imap à la recherche de certains messages
> - Il en détache les pièces jointes et lance un traitement (interne et/ou
> externe) dessus.
> - Il renvoit un mail de synthèse, avec éventuellement une pièce jointe
> attachée.
>
> J'ai donc besoin de plusieurs librairies:
> - gestion d'un compte imap (ouverture, effacement)
> - interface base de données (ADOdb ? je dis ça parce que je l'utilise en
> php...)
> - lecture du corps du mail (le plus portable possible au niveau des
> encodages possibles) pour extraction des PJ.
> - génération et envoi d'un mail.
>
> Quelles librairies utiliseriez vous ? (et éventuellement pourquoi, comme
> ça la prochaine fois je saurais choisir tout seul...)


Le mieux est de commencer par celles intégrées à Python ; c'est le plus
simple, et le plus portable. Mais dans ton cas, il risque de t'en falloir
en plus.

Pour la ligne de commande, il y a optparse, qui reprend ce que fait getopt
(en C), mais plus simplement.

Pour MySQL, il y a MySQLDB (wrapper basique). Regarde aussi du côté de
SQLObject (wrapper classique), ou mieux, SQLAlchemy, qui sont des wrappers
objets.

Pour l'imap, je ne sais pas s'il y a quelque chose d'intégré.

Pour le traitement mail, il y a des librairies intégrées, mais un peu bas
niveau. Si tu t'y connais en messagerie, tu peux faire tout ce que tu
veux, mais si tu n'y connais rien, c'est pas trivial.

Pour l'envoi, ce n'est pas sorcier avec le module intégré.

> Et si vous avez des conseils à me donner, j'écoute.


Pour le choix, c'est vrai qu'il peut en exister plusieurs ; là, tu peux
soit tester et prendre celle qui te convient le mieux (il y a souvent des
différences sur la façon de les utiliser), soit poser la question sur la
liste python-fr, à laquelle je te conseille de t'inscrire (pas trop de
traffic, mais plein de gens très compétents).

La portabilité est aussi un facteur à prendre en compte si tu dois faire
tourner ton truc sur plusieurs plateformes.

Sinon, pour les docs, regarde le fil qu'il y a eu ici il y a quelques
semaines ; on avait posté des liens intéressants.

--
Frédéric

http://www.gbiloba.org