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备份Mysql脚本
Aug 11 Python
python装饰器使用方法实例
Nov 21 Python
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
Python httplib模块使用实例
Apr 11 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
Jul 15 Python
快速了解Python中的装饰器
Jan 11 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
Python序列对象与String类型内置方法详解
Oct 22 Python
Python flask框架如何显示图像到web页面
Jun 03 Python
python怎么对数字进行过滤
Jul 05 Python
python 如何获取页面所有a标签下href的值
May 06 Python
详解解Django 多对多表关系的三种创建方式
Aug 23 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
8个出色的WordPress SEO插件收集
2011/02/26 PHP
解析php中session的实现原理以及大网站应用应注意的问题
2013/06/17 PHP
PHP中判断文件存在使用is_file还是file_exists?
2015/04/03 PHP
css值转换成数值请抛弃parseInt
2011/10/24 Javascript
javascript学习笔记(十九) 节点的操作实现代码
2012/06/20 Javascript
随鼠标上下滚动的jquery代码
2013/12/05 Javascript
JQuery EasyUI 数字格式化处理示例
2014/05/05 Javascript
使用jQuery实现验证上传图片的格式与大小
2014/12/03 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
JS实现的简单轮播图运动效果示例
2016/12/22 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
AngularJS实现的锚点楼层跳转功能示例
2018/01/02 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
JS+php后台实现文件上传功能详解
2019/03/02 Javascript
Vue+Django项目部署详解
2019/05/30 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
[01:54]TI4西雅图DOTA2选手欢迎晚宴 现场报道
2014/07/08 DOTA
python基础教程之常用运算符
2014/08/29 Python
浅析Python中signal包的使用
2015/11/13 Python
python的构建工具setup.py的方法使用示例
2017/10/23 Python
python通过getopt模块如何获取执行的命令参数详解
2017/12/29 Python
Python数据结构之双向链表的定义与使用方法示例
2018/01/16 Python
python中的set实现不重复的排序原理
2018/01/24 Python
python openCV获取人脸部分并存储功能
2019/08/28 Python
django admin 添加自定义链接方式
2020/03/11 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
html5 svg 中元素点击事件添加方法
2013/01/16 HTML / CSS
Public Desire美国/加拿大:全球性的在线鞋类品牌
2018/12/17 全球购物
马云的职业生涯规划之路
2014/01/01 职场文书
研究生考核个人自我鉴定
2014/03/27 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
考试作弊检讨书怎么写?
2014/12/21 职场文书
LayUI+Shiro实现动态菜单并记住菜单收展的示例
2021/05/06 Javascript
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python