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 将字符串转换成字典dict
Mar 24 Python
python正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
Python连接mssql数据库编码问题解决方法
Jan 01 Python
Python实现去除代码前行号的方法
Mar 10 Python
在Python中操作字符串之replace()方法的使用
May 19 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
Django教程笔记之中间件middleware详解
Aug 01 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
Sep 25 Python
线程安全及Python中的GIL原理分析
Oct 29 Python
python安装cx_Oracle和wxPython的方法
Sep 14 Python
Python 阶乘详解
Oct 05 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
php打开远程文件的方法和风险及解决方法
2013/11/12 PHP
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
js遍历子节点子元素附属性及方法
2014/08/19 Javascript
JavaScript分析、压缩工具JavaScript Analyser
2014/12/31 Javascript
javascript设计模式之对象工厂函数与构造函数详解
2015/07/30 Javascript
简单纯js实现点击切换TAB标签实例
2015/08/23 Javascript
对象转换为原始值的实现方法
2016/06/06 Javascript
Bootstrap CDN和本地化环境搭建
2016/10/26 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
对存在JavaScript隐式类型转换的四种情况的总结(必看篇)
2017/08/31 Javascript
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
Python实现的下载8000首儿歌的代码分享
2014/11/21 Python
Python实现返回数组中第i小元素的方法示例
2017/12/04 Python
对Python捕获控制台输出流的方法详解
2019/01/07 Python
使用Python实现跳帧截取视频帧
2019/05/31 Python
用python做游戏的细节详解
2019/06/25 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python可视化工具如何实现动态图表
2020/10/23 Python
Pandas中DataFrame交换列顺序的方法实现
2020/12/14 Python
python如何构建mock接口服务
2021/01/28 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
美国购买体育、音乐会和剧院门票网站:SelectATicket
2019/09/08 全球购物
思想汇报格式
2014/01/05 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
产假请假条
2014/04/10 职场文书
公司合作协议书范本
2014/04/18 职场文书
运动会口号16字
2014/06/07 职场文书
物业保洁员岗位职责
2015/02/13 职场文书
夏洛特的网观后感
2015/06/15 职场文书
商场广播稿范文
2015/08/19 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
python实现监听键盘
2021/04/26 Python