Python批量将csv文件转化成xml文件的实例


Posted in Python onMay 10, 2021

一、前言

逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列,通常都是纯文本文件。

可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

二、Python代码实现

导入用到的库

from xml.etree.ElementTree import Element, ElementTree
import csv
from pathlib import Path
import os

创建一个文件夹,用来保存转换后的xml文件

# 创建一个文件夹  用来保存转换后的xml文件
path = os.path.join('xml_file')
if not os.path.exists(path):
    os.mkdir(path)

获取所有待转换的csv文件

# 获取所有待转换的csv文件  返回列表
def list_csv():
    file_path = input('请输入你存放csv文件的路径:')
    p = Path(file_path)
    csv_files = p.glob('**/*.csv')
    csv_files = [str(csv_file) for csv_file in csv_files]
    return csv_files

将 csv 文件转换为 xml 文件

# 将csv文件转换为xml
def csv_to_xml(file_name):
    print(file_name)
    with open(file_name, 'r', encoding='utf-8') as f:   # 读取csv文件
        reader = csv.reader(f)
        header = next(reader)   # 跳过表头
        root = Element('Datas')
        print('root', len(root))
        # 处理转换
        for row in reader:
            erow = Element('row')
            root.append(erow)
            for tag, text in zip(header, row):
                e = Element(tag)
                e.text = text
                erow.append(e)
    beatau(root)
    return ElementTree(root)


def beatau(e, level=0):
    if len(e) > 0:
        e.text = '\n' + '\t' * (level + 1)
        child = None
        for child in e:
            beatau(child, level + 1)
        child.tail = child.tail[:-1]
    e.tail = '\n' + '\t' * level

主函数调用

if __name__ == '__main__':
    csv_list = list_csv()
    print(csv_list)
    for index_, item in enumerate(csv_list, start=1):
        print(index_, item)
        et = csv_to_xml(item)
        et.write(path + '/' + 'test_{}.xml'.format(index_), encoding='utf-8')

结果如下:

Python批量将csv文件转化成xml文件的实例

用编辑器打开可以看到 xml 文件的内容(我用的Sublime Text),如下所示

Python批量将csv文件转化成xml文件的实例

以上就是Python批量将csv文件转化成xml文件的实例的详细内容,更多关于Python csv文件转化成xml文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python的Flask开发框架简单上手笔记
Nov 16 Python
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
Python递归函数定义与用法示例
Jun 02 Python
Python中列表list以及list与数组array的相互转换实现方法
Sep 22 Python
python 借助numpy保存数据为csv格式的实现方法
Jul 04 Python
selenium+python自动化测试之页面元素定位
Jan 23 Python
Python实现KNN(K-近邻)算法的示例代码
Mar 05 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
Python脚本去除文件的只读性操作
Mar 05 Python
解决python使用list()时总是报错的问题
May 05 Python
python小技巧——将变量保存在本地及读取
Nov 13 Python
Python高并发和多线程有什么关系
Nov 14 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
php数据库连接
2006/10/09 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
apache php mysql开发环境安装教程
2016/07/28 PHP
Ext.MessageBox工具类简介
2009/12/10 Javascript
两个比较有用的Javascript工具函数代码
2010/02/17 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
简单的js表单验证函数
2013/10/28 Javascript
js获取当月最后一天实例代码
2013/11/19 Javascript
jQuery制作简单柱状图实例
2015/01/28 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
详解vue mixins和extends的巧妙用法
2017/12/20 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
jquery+css实现Tab栏切换的代码实例
2019/05/14 jQuery
vue 实现微信浮标效果
2019/09/01 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
vue单应用在ios系统中实现微信分享功能操作
2020/09/07 Javascript
微信小程序实现天气预报功能(附源码)
2020/12/10 Javascript
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
Python实现代码统计工具(终极篇)
2016/07/04 Python
解决Python一行输出不显示的问题
2018/12/03 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
什么是python的id函数
2020/06/11 Python
Vince官网:全球著名设计师品牌,休闲而优雅的服饰
2017/01/15 全球购物
施华洛世奇意大利官网:SWAROVSKI意大利
2018/07/23 全球购物
北大自主招生自荐信
2013/10/19 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
热情服务标语
2014/10/07 职场文书
2014年教学管理工作总结
2014/12/02 职场文书
优秀教师单行材料
2014/12/16 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
婚礼领导致辞大全
2015/07/28 职场文书
Python内置数据类型中的集合详解
2022/03/18 Python