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 try异常处理机制
Jun 01 Python
python目录与文件名操作例子
Aug 28 Python
Python编程pygame模块实现移动的小车示例代码
Jan 03 Python
使用requests库制作Python爬虫
Mar 25 Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 Python
OpenCV搞定腾讯滑块验证码的实现代码
May 18 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
Python实现SMTP邮件发送
Jun 16 Python
python爬虫智能翻页批量下载文件的实例详解
Feb 02 Python
Python 用户输入和while循环的操作
May 23 Python
python随机打印成绩排名表
Jun 23 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
星际争霸任务指南——人族
2020/03/04 星际争霸
浅谈ThinkPHP的URL重写
2014/11/25 PHP
PHP开发中AJAX技术的简单应用
2015/12/11 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
thinkPHP简单调用函数与类库的方法
2017/03/15 PHP
PHP实现的最大正向匹配算法示例
2017/12/19 PHP
用js遍历 table的脚本
2008/07/23 Javascript
javascript 一段左右两边随屏滚动的代码
2009/06/18 Javascript
使用Mootools动态添加Css样式表代码,兼容各浏览器
2011/12/12 Javascript
JavaScript支持的最大递归调用次数分析
2014/06/24 Javascript
node.js实现博客小爬虫的实例代码
2016/10/08 Javascript
微信小程序 wx.request(OBJECT)发起请求详解
2016/10/13 Javascript
JS作用域闭包、预解释和this关键字综合实例解析
2016/12/16 Javascript
如何实现星星评价(jquery.raty.js插件)
2016/12/21 Javascript
提升页面加载速度的插件InstantClick
2017/09/12 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
Vue.js特性Scoped Slots的浅析
2019/02/20 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
JavaScript遍历数组的方法代码实例
2020/01/14 Javascript
简单谈谈offsetleft、offsetTop和offsetParent
2020/12/04 Javascript
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
对TensorFlow中的variables_to_restore函数详解
2018/07/30 Python
Python Web框架之Django框架文件上传功能详解
2019/08/16 Python
Django实现auth模块下的登录注册与注销功能
2019/10/10 Python
Smallable意大利家庭概念店:设计师童装及家居装饰
2018/01/08 全球购物
Aeropostale官网:美国著名校园品牌及青少年服饰品牌
2019/03/21 全球购物
化工专业应届生求职信
2013/11/08 职场文书
给领导的检讨书
2014/02/16 职场文书
经典而简洁的婚礼主持词
2014/03/13 职场文书
学校花圃的标语
2014/06/18 职场文书
教师群众路线学习心得体会
2014/11/04 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
2015年财务人员工作总结
2015/04/10 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python