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实现获取序列中最小的几个元素
Sep 25 Python
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
PyQt5每天必学之关闭窗口
Apr 19 Python
查看Django和flask版本的方法
May 14 Python
Python读写及备份oracle数据库操作示例
May 17 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
python实现抖音视频批量下载
Jun 20 Python
Python pymongo模块常用操作分析
Sep 01 Python
python+rsync精确同步指定格式文件
Aug 29 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
浅谈django不使用restframework自定义接口与使用的区别
Jul 15 Python
Python使用openpyxl复制整张sheet
Mar 24 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
PHP实现支持GET,POST,Multipart/form-data的HTTP请求类
2014/09/24 PHP
新浪SAE搭建PHP项目教程
2015/01/28 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
js完美实现@提到好友特效(兼容各大浏览器)
2015/03/16 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
2015/06/29 Javascript
jQuery form插件的使用之处理server返回的JSON, XML,HTML数据
2016/01/26 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
详细讲解JavaScript中的this绑定
2016/10/10 Javascript
nodejs基础知识
2017/02/03 NodeJs
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
JS变量及其作用域
2017/03/29 Javascript
微信小程序商城项目之购物数量加减(3)
2017/04/17 Javascript
使用JS动态显示文本
2017/09/09 Javascript
Angular实现的简单定时器功能示例
2017/12/28 Javascript
10个经典的网页鼠标特效代码
2018/01/09 Javascript
vue watch自动检测数据变化实时渲染的方法
2018/01/16 Javascript
JavaScript设计模式之调停者模式实例详解
2018/02/03 Javascript
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
2019/04/24 Javascript
原生js实现针对Dom节点的CRUD操作示例
2019/08/26 Javascript
Python判断变量是否已经定义的方法
2014/08/18 Python
python之yield表达式学习
2014/09/02 Python
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python生成式的send()方法(详解)
2017/05/08 Python
python监控linux内存并写入mongodb(推荐)
2017/09/11 Python
75条笑死人的知乎神回复,用60行代码就爬完了
2019/05/06 Python
FFT快速傅里叶变换的python实现过程解析
2019/10/21 Python
三星俄罗斯授权在线商店:Samsung俄罗斯
2019/09/28 全球购物
教育技术职业规划范文
2014/03/04 职场文书
正科级干部考察材料
2014/05/29 职场文书
党员个人剖析材料2014
2014/10/08 职场文书
民间借贷被告代理词
2015/05/23 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python
Redis keys命令的具体使用
2022/06/05 Redis