Forum Programmation.python Transformation de chaîne en chaîne "à la html"

Posté par  .
Étiquettes : aucune
0
3
nov.
2005
Je cherche un moyen de transformer une chaîne de caractères en une chaîne qui soit "à la html".

C'est à dire qui transforme les é en é et ainsi de suite... j'ai bien essayé avec cgi.escape et htmlentities mais je ne m'en suis pas sorti. C'est très sûrement car j'ai du mal faire quelque chose... Donc je veux bien toutes les aides.

Merci
  • # Solution (à moi même)

    Posté par  . Évalué à 2.

    A force d'embeter du monde avec ça, j'ai eu une solution sur irc. Donc merci à tamere sur #python-fr pour la solution, la voici :

    import htmlentitydefs
    dico = {}
    for (k, v) in htmlentitydefs.entitydefs.items() :
    dico[v] = k
    machaine = "lé aquesant cé bô"
    for c in machaine :
    try :
    print "&%s;" % dico[c]
    except KeyError :
    print c
    • [^] # Re: Solution (à moi même)

      Posté par  . Évalué à 3.

      Histoire de une solution alternative :

      from htmlentitydefs import entitydefs
      d = dict([(v,"&%s;" % k) for k,v in entitydefs.items()])
      chaine = "lé aquesant cé bô"
      res = ''.join([d.get(c, c) for c in chaine])

      Et hop ! Je suis pas sûr que c'est intéressant pour les perfs mais c'est plus "pythonic", surtout ca évite le try/except en utilisant get.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.