繁体   English   中英

如何在Python-3.x中解码文件?

[英]How to decode file in Python-3.x?

对于我的项目,我需要解析xml文件。 为此,我使用lxml。 我需要解析的文件有一个cp1251编码,但是,当然,使用lxml解析它我需要将它解码为utf-8,我不知道该怎么做。 我试图解决这个问题,但所有解决方案都适用于Python 2.7或者没有用。 如果尝试写类似的东西

inp = open("business.xml", "r", encoding='cp1251').decode('utf-8')

要么

inp.decode('utf-8')

它得到了

builtins.AttributeError: '_io.TextIOWrapper' object has no attribute 'decode'

我有Python 3.2。 任何帮助都很好,谢谢你。

open() 为您解码文件。 您已经在接收Unicode数据。

对于lxml您需要以二进制模式打开文件,并让XML解析器处理编码。 不要自己这样做。

with open("business.xml", "rb") as inp:
    tree = etree.parse(inp)

XML文件包含一个标头,用于指示它们使用的编码,并且解析器会对其进行调整。 如果缺少标头,解析器可以安全地假设为UTF-8。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM