當我試圖通過一個lxml教程時,我忍不住想知道爲什麼當我使用print命令時,屏幕上的輸出仍然希望將所有內容放在一行上,即使使用pretty_print = True也是如此。爲什麼Python 3.4.3使用lxml不能正確輸出print語句?
所以說我剛剛安裝了Python 3.4.3 64位,並安裝Python後安裝lxml-3.4.0.win32-py3.4.exe。
然後,在空閒或在python.exe命令提示符,我做到以下幾點:
from lxml import etree
root = etree.XML('<root><a><b/></a></root>')
print(etree.tostring(root, pretty_print=True))
什麼期望我(和教程)是下面的輸出到屏幕上:
<root>
<a>
<b/>
</a>
</root>
但我在空閒的實際看到和蟒蛇cmd在Windows 7的提示是這樣的:
b'<root>\n <a>\n <b/>\n </a>\n</root>\n'
那麼,爲什麼口譯員是這樣做的嗎?有沒有辦法在單行模式和更正常的標準輸出之間切換?也許更重要的是,如果我想將這個XML寫入一個文件,那麼帶lxml的Python會堅持把\ n和其他所有東西放在一行上,而不是按照它應該的方式打印出來嗎?
感謝, 約翰尼
嘗試打印在控制檯,你會看到它的工作原理。你看到的是換行符的表示,而不是換行符本身...... –
在Python 3.4.3控制檯和IDLE中都試過了。只有當我將編碼='unicode'作爲參數放在tostring中時,下面回答的人建議它工作。 – Johnny