【问题标题】:How to decode file in Python-3.x?如何在 Python-3.x 中解码文件?
【发布时间】:2013-04-14 09:35:20
【问题描述】:

对于我的项目,我需要解析 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。 任何帮助都很好, 谢谢你。

【问题讨论】:

    标签: python xml python-3.x decoding


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-07-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-26
      • 1970-01-01
      • 2012-05-13
      • 2013-05-25
      • 1970-01-01
      相关资源
      最近更新 更多