首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python-3.x中解码文件?

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

Stack Overflow用户
提问于 2013-04-21 20:06:50
回答 1查看 1.1K关注 0票数 1

对于我的项目,我需要解析xml文件。为此,我使用lxml。我需要解析的文件有一个cp1251编码,当然,为了使用lxml解析它,我需要将它解码成utf-8,我不知道怎么做。我试图搜索一些关于这个的东西,但所有的解决方案都是针对Python 2.7或不起作用的。如果你想写一些像这样的东西

代码语言:javascript
复制
inp = open("business.xml", "r", encoding='cp1251').decode('utf-8')

代码语言:javascript
复制
inp.decode('utf-8')

它会变得

代码语言:javascript
复制
builtins.AttributeError: '_io.TextIOWrapper' object has no attribute 'decode'

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-21 20:08:04

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

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

代码语言:javascript
复制
with open("business.xml", "rb") as inp:
    tree = etree.parse(inp)

XML文件包含一个标头,指示它们使用什么编码,解析器会根据这一点进行调整。如果头部丢失,解析器可以安全地假定为UTF-8。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16130924

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档