Пока я пытаюсь запустить учебник lxml, я не мог не задаться вопросом, почему, когда я использую команду print, вывод на экран продолжает собирать все на одной строке, даже с pretty_print = True.Почему Python 3.4.3 с использованием lxml не выводит корректную инструкцию печати?
Так сказать, я только что установил Python 3.4.3 64-bit и установил lxml-3.4.0.win32-py3.4.exe после установки Python.
Затем в IDLE или в python.exe CMD строке я сделать следующее:
from lxml import etree
root = etree.XML('<root><a><b/></a></root>')
print(etree.tostring(root, pretty_print=True))
Что я (и учебник) ожидается был следующий вывод на экран:
<root>
<a>
<b/>
</a>
</root>
Но то, что я на самом деле вижу в обоих IDLE и питон CMD подскажет в Windows 7 заключается в следующем:
b'<root>\n <a>\n <b/>\n </a>\n</root>\n'
Так почему это делает переводчик? Есть ли способ переключиться между однострочным режимом и более нормальным стандартным выходом? И, возможно, что более важно, если я хочу записать этот XML в файл, будет ли Python с lxml настаивать на том, чтобы положить \ n и все остальное на строку вместо того, чтобы печатать так, как это должно быть?
Спасибо, Джонни
попытки напечатать его в консоли, вы увидите, что она работает , Вы видите представление строк, а не самих строк ... –
Пробовал это как в консоли Python 3.4.3, так и в IDLE. Только когда я помещал кодировку = 'unicode' в качестве аргумента в tostring, как сказал тот, кто ответил ниже, сделал это. – Johnny