Partage
  • Partager sur Facebook
  • Partager sur Twitter

Ecriture dans un fichier en UTF-8

odoo - python - xml

    16 juillet 2019 à 16:29:02

    Bonjour, 

    J'ai un problème d'encodage lorsque j'écris dans un fichier xml. J'ai vu plusieurs tutos qui montrait une solution. Cependant, ça ne fonctionne pas chez moi. 

    Voici mon code : 

    # Fonction qui permet de crée le contenu du fichier responsables.xml ou de le mettre à jour
    def write_in_file_six(xml, codecommune, numeroresponsableext):
    
        if codecommune == "79202":
            folder = "PARTHENAY"
        elif codecommune == "79213":
            folder = "POMPAIRE"
        else:
            folder = "LETALLUD"
    
        xml_head = """<?xml version="1.0" encoding="ISO-8859-15"?>
    <responsables>
        <parametres>
            <codecommune>"""+codecommune+"""</codecommune>
            <logiciel>77</logiciel>
        </parametres>
        <creation>
    """
    
        xml_footer = """    </creation>
    </responsables>
    """
    
        file_six = "/files/xml/"+folder+"/responsables.xml"
        modified = os.path.getmtime(file_six)
        modified_date = datetime.datetime.fromtimestamp(modified)
        day_date = datetime.datetime.today()
    
        with codecs.open(file_six, "r", encoding="UTF-8") as f:
            contents = f.readlines()
    
        if day_date.day != modified_date.day:
            xml = xml_head + xml + xml_footer
            with codecs.open(file_six, "w", encoding="UTF-8") as f:
                f.write(xml)
        else:
            with codecs.open(file_six, 'r', encoding="UTF-8") as f:
                for line in f:
                    if numeroresponsableext in line:
                        return
            contents.insert(7, xml)
            with codecs.open(file_six, "w", encoding="UTF-8") as f:
                contents = "".join(contents)
                f.write(contents)
        print xml



    Une idée ? 

    Merci

    • Partager sur Facebook
    • Partager sur Twitter
      16 juillet 2019 à 18:22:27

      Bonjour,

      Ne devrais-tu pas avoir de l'encoding UTF-8 dans ton header XML au lieu de l'ISO-8859-15 (cf. ligne 11) ?

          xml_head = """<?xml version="1.0" encoding="ISO-8859-15"?>
      • Partager sur Facebook
      • Partager sur Twitter

      Ecriture dans un fichier en UTF-8

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown