Pendant que j'essayais de lancer un tutoriel lxml, je ne pouvais pas m'empêcher de me demander pourquoi quand j'utilise la commande print, la sortie à l'écran continue de vouloir tout mettre sur une ligne même avec pretty_print = True. Par exemple, je viens d'installer Python 3.4.3 64 bits et j'ai installé lxml-3.4.0.win32-py3.4.exe après l'installation de Python.Pourquoi Python 3.4.3 utilisant lxml ne génère-t-il pas une instruction d'impression correctement?
Puis, en IDLE ou au python.exe cmd invite, je fais ce qui suit:
from lxml import etree
root = etree.XML('<root><a><b/></a></root>')
print(etree.tostring(root, pretty_print=True))
Ce que je (et le tutoriel) attendu a été la sortie suivante à l'écran:
<root>
<a>
<b/>
</a>
</root>
Mais ce que je vois en fait dans les deux IDLE et le python cmd rapide en Windows 7 est la suivante:
b'<root>\n <a>\n <b/>\n </a>\n</root>\n'
Alors, pourquoi faire L'interprète fait-il cela? Est-il possible de basculer entre le mode ligne unique et la sortie standard plus normale? Et peut-être plus important encore, si je veux écrire ce fichier XML dans un fichier, Python avec le lxml insistera-t-il pour mettre le \ n et tout le reste sur une ligne au lieu de l'imprimer comme prévu?
Merci, Johnny
essayer d'imprimer dans une console, vous verrez cela fonctionne . Vous voyez la représentation des sauts de ligne, pas les sauts de ligne eux-mêmes ... –
J'ai essayé cela dans la console Python 3.4.3 et dans IDLE. C'est seulement quand je mets l'encodage = 'unicode' comme argument dans tostring car la personne qui a répondu ci-dessous a suggéré que ça marche. – Johnny