Vous avez un problème avec la génération d'un fichier .SVG avec Python3 et ElementTree.ElementTree TypeError "l'argument write() doit être str, pas bytes" dans Python3
from xml.etree import ElementTree as et
doc = et.Element('svg', width='480', height='360', version='1.1', xmlns='http://www.w3.org/2000/svg')
#Doing things with et and doc
f = open('sample.svg', 'w')
f.write('<?xml version=\"1.0\" standalone=\"no\"?>\n')
f.write('<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n')
f.write('\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n')
f.write(et.tostring(doc))
f.close()
Le et.tostring Function (doc) génère le TypeError "argument write() doit être str, pas d'octets". Je ne comprends pas ce comportement, "et" devrait convertir l'ElementTree-Element en une chaîne? Cela fonctionne dans python2, mais pas dans python3. Qu'ai-je fait de mal?
Avez-vous vérifié la documentation? Voir [cette page] (https://docs.python.org/3/library/xml.etree.elementtree.html) et rechercher 'tostring'. Est ce que ça aide? –
pas vraiment, il devrait être déjà décodé en utf-8 bytestring, mais python3 semble avoir un problème avec cela –