Burps | Salut
histoire de mettre les choses au point : je suis plutot python-newbie, et le type qi a developé le soft est pas la en ce moment... et il a mal codé son truc (quoi, c'est pas bien de cracher sur ses collègues.... oui, je sais...)
Bref : l'objectif du bout de code, c de partir d'un message de mail initial, remplacer des mots-clés par d'autres (le num d'erreur pas exemple), et envoyer le mail. Ca donne ca :
Code :
- ### remplace un texte dans un fichier (provient de http://programmation-python.org/se [...] ercice-05)
- def remplace_texte(fichier, cherche, remplace):
- c_cherche = re.compile(cherche)
- curseur = open(fichier, 'r')
- try:
- curseur_ecriture = open('%s.tmp' % fichier, 'w')
- try:
- for line in curseur.readlines():
- line = re.sub(c_cherche, remplace, line)
- curseur_ecriture.write(line)
- finally:
- curseur_ecriture.close()
- finally:
- curseur.close()
- # renommage
- rename(fichier, '%s~' % fichier)
- rename('%s.tmp' % fichier, fichier)
- # mailer à l'admin l'erreur lors de la sauvegarde
- def mail_error(error_type):
- if (error_type != 0):
- remplace_texte(mail_mssg, "AREA", area)
- remplace_texte(mail_mssg, "ERROR_NUMBER", str(error_type))
- mssg = open(mail_mssg, 'r').read()
- session = smtplib.SMTP(smtpserver)
- smtpresult = session.sendmail(SENDER, RECIPIENTS, mssg)
- if smtpresult:
- errstr = ""
- for recip in smtpresult.keys():
- errstr = """Could not delivery mail to: %s
- Server said: %s %s
- %s""" % (recip, smtpresult[recip][0], smtpresult[recip][1], errstr)
- raise smtplib.SMTPException, errstr
- else:
- mssg = open(mail_mssg, 'r').read()
- session = smtplib.SMTP(smtpserver)
- smtpresult = session.sendmail(SENDER, RECIPIENTS, mssg)
- if smtpresult:
- errstr = ""
- for recip in smtpresult.keys():
- errstr = """Could not delivery mail to: %s
- Server said: %s %s
- %s""" % (recip, smtpresult[recip][0], smtpresult[recip][1], errstr)
- raise smtplib.SMTPException, errstr
|
Sauf que le problème, c'est que ca remplace definitivement les mots-cles, alors qu'il faudrait que ce ne les remplace que temporairement, le temps d'envoyer le mail.
Une 1Ere solution serait de faire une copie du fichier, remplacer, mailer, puis effacer, mais je sais pas trop comment faire ca (jvous ai deja dit que j'etais newbie ?), alors si vous pouviez m'aider, en vous remerciant.... |