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开发vim插件及心得分享
Nov 04 Python
简单掌握Python的Collections模块中counter结构的用法
Jul 07 Python
使用python绘制常用的图表
Aug 27 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
python pygame实现方向键控制小球
May 17 Python
安装docker-compose的两种最简方法
Jul 30 Python
python 批量修改 labelImg 生成的xml文件的方法
Sep 09 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
代码总结Python2 和 Python3 字符串的区别
Jan 28 Python
Python接口测试环境搭建过程详解
Jun 29 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 Python
python中的class_static的@classmethod的巧妙用法
Jun 22 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中用hash实现的数组
2011/07/17 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
Symfony2针对输入时间进行查询的方法分析
2017/06/28 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
Extjs学习笔记之二 初识Extjs之Form
2010/01/07 Javascript
js自定义事件及事件交互原理概述(一)
2013/02/01 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
JS+CSS实现的竖向简洁折叠菜单效果代码
2015/10/22 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
Bootstrap+jfinal退出系统弹出确认框的实现方法
2016/05/30 Javascript
解析JavaScript中的字符串类型与字符编码支持
2016/06/24 Javascript
JS改变页面颜色源码分享
2018/02/24 Javascript
nodejs实现一个word文档解析器思路详解
2018/08/14 NodeJs
vue中使用codemirror的实例详解
2018/11/01 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
python中使用urllib2获取http请求状态码的代码例子
2014/07/07 Python
Python selenium文件上传方法汇总
2020/11/19 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
日本民宿预约平台:STAY JAPAN
2017/07/01 全球购物
New Balance澳大利亚官网:运动鞋和健身服装
2019/02/23 全球购物
高级销售求职信
2014/02/21 职场文书
小学班主任寄语大全
2014/04/04 职场文书
检举信的格式及范文
2014/04/04 职场文书
业务员自荐信范文
2014/04/20 职场文书
体育运动会广播稿
2014/10/05 职场文书
城南旧事电影观后感
2015/06/16 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
2019自荐信范文集锦!
2019/07/03 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫
go goth封装第三方认证库示例详解
2022/08/14 Golang