iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python中怎么对XML文件的编码进行转换
  • 120
分享到

Python中怎么对XML文件的编码进行转换

Pythonxml 2023-05-21 12:05:14 120人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

1. 在 python 中 XML 文件的编码问题1.Python 使用的xml.etree.ElementTree库只支持解析和生成标准的UTF-8格式的编码2.常见GBK或GB2312等中文编码的 XML 文件,用以在老旧系统中保证 X

1. 在 python 中 XML 文件的编码问题

1.Python 使用的xml.etree.ElementTree库只支持解析和生成标准的UTF-8格式的编码

2.常见GBKGB2312等中文编码的 XML 文件,用以在老旧系统中保证 XML 对中文字符的记录能力

3.XML 文件开头有标识头,标识头指定了程序处理 XML 时应该使用的编码

Python中怎么对XML文件的编码进行转换

4.要修改编码,不仅要修改文件整体的编码,还要将标识头中 encoding 部分的值修改

2. 处理 Python XML 文件的思路

1.读取&解码:

  • 使用二进制模式读取 XML 文件,将文件变为二进制流

  • 将二进制流使用.encode()方法,使用原文件的编码格式进行解析为字符串

2.处理标识头:使用.replace()方法,替换字符串中的encoding="xxx"部分

3.编码&保存:将字符串使用新的编码格式进行保存

3. 实际过程中遇到的问题

  • GB2312 <&ndash;> UTF:无问题,可直接按照上面的逻辑处理

  • GBK <&ndash;> UTF8

    • GBK --> UTF8:无问题,可直接按照上面的逻辑处理

    • UTF8 --> GBK:.encode()会报错,要加上error="ignore"参数,忽略无法转换的字符

    • 这里的原理是:GBK 编码兼容 UTF-8 编码,因此无法转换的内容使用 GBK 直接也能显示

  • GBK <&ndash;> GB2312:无问题

4. 最后使用的代码

# filepath -- 原文件路径
# savefilepath -- 转换后文件存储路径(默认 = 原文件路径)
# oldencoding -- 原文件的编码格式
# newencoding -- 转换后文件的编码格式
def convert_xml_encoding(filepath, savefilepath=filepath, oldencoding, newencoding):
    # Read the XML file
    with open(filepath, 'rb') as file:
        content = file.read()

    # Decode the content from old encoding
    # 出现错误时忽略 errors='ignore'
    decoded_content = content.decode(oldencoding, errors='ignore')
    # decoded_content = content.decode('GBK')


    # Update the encoding in the XML header
    updated_content = decoded_content.replace('encoding="{}"'.fORMat(oldencoding),
                                               'encoding="{}"'.format(newencoding))

    # Encode the content to new encoding
    # 出现错误时忽略 errors='ignore'
    encoded_content = updated_content.encode(newencoding,errors='ignore')

    # Write the updated content to the file
    with open(savefilepath, 'wb') as file:
        file.write(encoded_content)

    # Result output
    print(f"XML file '{os.path.basename(filepath)}'({oldencoding}) --> '{os.path.basename(savefilepath)}'({newencoding})")

# ---------------------- 使用示例 ---------------------
# GBK --> utf-8
convert_xml_encoding(filepath, savefilepath2, 'GBK', 'utf-8')
# utf-8 --> gb2312
convert_xml_encoding(filepath, savefilepath2, 'utf-8', 'gb2312')
# GBK --> gb2312
convert_xml_encoding(filepath, savefilepath2, 'GBK', 'gb2312')

注意事项:

  • 由于这里需要直接替换标识头,要求编码名称一定得完全匹配,否则替换会失败

  • 如:GBK 不能写成 gbk,utf-8 不能写成 UTF8此代码仅在以上 GBK、GB2312、UTF-8 & 常用中英文基础上测试,其他的编码格式不保证一定能转换成功

以上就是Python中怎么对XML文件的编码进行转换的详细内容,更多请关注编程网其它相关文章!

--结束END--

本文标题: Python中怎么对XML文件的编码进行转换

本文链接: https://www.lsjlt.com/news/215275.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python中怎么对XML文件的编码进行转换
    1. 在 Python 中 XML 文件的编码问题1.Python 使用的xml.etree.ElementTree库只支持解析和生成标准的UTF-8格式的编码2.常见GBK或GB2312等中文编码的 XML 文件,用以在老旧系统中保证 X...
    99+
    2023-05-21
    Python xml
  • Python中对XML文件的编码转换问题
    目录1. 在 Python 中 XML 文件的编码问题2. 处理 Python XML 文件的思路3. 实际过程中遇到的问题4. 最后使用的代码1. 在 Python 中 XML 文...
    99+
    2023-03-21
    Python XML 文件编码转换 Python XML 转换
  • 怎么进行Linux下文件编码格式转换
    这篇文章跟大家分析一下“怎么进行Linux下文件编码格式转换”。内容详细易懂,对“怎么进行Linux下文件编码格式转换”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“怎么进行Lin...
    99+
    2023-06-28
  • python中的txt文件怎么转换为XML
    这篇文章主要介绍了python中的txt文件怎么转换为XML的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python中的txt文件怎么转换为XML文章都会有所收获,下面我们一起来看看吧。txt文件转换为XML...
    99+
    2023-07-04
  • linux中的文件编码怎么转换
    本篇内容主要讲解“linux中的文件编码怎么转换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中的文件编码怎么转换”吧! ...
    99+
    2023-05-25
    linux
  • 怎么在python中对capitalize进行转换
    这期内容当中小编将会给大家带来有关怎么在python中对capitalize进行转换,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、将字符串的首字母转换为大写。#输入 ["pytho...
    99+
    2023-06-15
  • javascript对url进行编码转换的方法
    这篇文章将为大家详细讲解有关javascript对url进行编码转换的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript对url进行编码转换的方法:1、使用encodeURI()函数,...
    99+
    2023-06-14
  • php中怎么进行utf8和gbk编码的转换
    在进行网站开发时,会经常用到字符编码的转换。其中一种常见的转换是将UTF-8编码转换成GBK编码。本文将介绍如何使用PHP进行UTF-8和GBK编码之间的转换。一、UTF-8编码和GBK编码的区别UTF-8编码和GBK编码都是常见的字符编码...
    99+
    2023-05-14
  • python中文转换url编码(转)
    今天修改一个天气预报的东西,但输入城市不能得到天气预报,感觉是编码不对,因为你输入一个城市(比如‘杭州’),url的地址编码却是'%E4%B8%BD%E6%B1%9F',因此需 要做一个转换。这里我们就用到了模块urllib。>>...
    99+
    2023-01-31
    中文 python url
  • 怎么在python中将docx与doc文件进行转换
    怎么在python中将docx与doc文件进行转换?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。from win32com import cl...
    99+
    2023-06-09
  • python中文转换url编码
            今天要处理百度贴吧的东西。想要做一个关键词的list,每次需要时,直接添加 到list里面就可以了。但是添加到list里面是中文的情况(比如‘丽江’),url的地址编码却是'%E4%B8%BD%E6%B1%9F',因此需 要...
    99+
    2023-01-31
    中文 python url
  • Node.js中怎么转换文件编码的格式
    今天就跟大家聊聊有关Node.js中怎么转换文件编码的格式,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。项目很多 lua 文件不是 utf-8格式,...
    99+
    2024-04-02
  • Python的文本文件转换编码问题怎么解决
    这篇文章主要介绍“Python的文本文件转换编码问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python的文本文件转换编码问题怎么解决”文章能帮助大家解决问题。测试数据注:测试文本采用...
    99+
    2023-07-06
  • 利用java怎么对xml文件进行解析
    利用java怎么对xml文件进行解析?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。一、【基础知识——扫盲】sax、dom是两种对xml文档进行解析的方法(没有具体实现,只是接口...
    99+
    2023-05-31
    java xml ava
  • Java中如何实现将xml与对象进行转换
    本篇文章为大家展示了Java中如何实现将xml与对象进行转换,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。xml与Java对象的转换详解1.xstream解析报文XStreamComponent x...
    99+
    2023-05-31
    xml java 对象
  • Linq中怎么对XML文档进行修改
    这篇文章将为大家详细讲解有关Linq中怎么对XML文档进行修改,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Linq修改XML文档XElement element =&n...
    99+
    2023-06-17
  • Python中怎么对文件进行操作
    Python中怎么对文件进行操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。编码方式编码方式的历史大致为ASCII ->gb2312->unicode->u...
    99+
    2023-06-16
  • 怎么在java中对SimpleDateFormat进行转换
    怎么在java中对SimpleDateFormat进行转换?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java可以用来干什么Java主要应用于:1. web开...
    99+
    2023-06-14
  • Python中怎么对文件进行处理
    本篇文章给大家分享的是有关Python中怎么对文件进行处理,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。建议一:使用 pathlib 模块如果你需要在 Python 里进行文件...
    99+
    2023-06-15
  • Android应用中怎么对XML字符进行转义
    Android应用中怎么对XML字符进行转义?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。转义字符的原因基本上是两点:一、使用转义字符来表示字符集中定义的字符,比如ASCl...
    99+
    2023-05-31
    android xml roi
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作