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多进程同步Lock、Semaphore、Event实例
Nov 21 Python
Python中的hypot()方法使用简介
May 18 Python
python抓取网页中链接的静态图片
Jan 29 Python
获取python文件扩展名和文件名方法
Feb 02 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
python使用pandas处理大数据节省内存技巧(推荐)
May 05 Python
使用python实现哈希表、字典、集合操作
Dec 22 Python
Python vtk读取并显示dicom文件示例
Jan 13 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
Python判断三段线能否构成三角形的代码
Apr 12 Python
django实现日志按日期分割
May 21 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
PHP Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
深入理解PHP原理之异常机制
2010/08/21 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
php使用自定义函数实现汉字分割替换功能示例
2017/01/30 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
使用JavaScript实现Java的List功能(实例讲解)
2013/11/07 Javascript
js获取当前页面路径示例讲解
2014/01/08 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
JavaScript限定图片显示大小的方法
2015/03/11 Javascript
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
EasyUI创建人员树的实例代码
2017/09/15 Javascript
javaScript和jQuery自动加载简单代码实现方法
2017/11/24 jQuery
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
[01:04:48]VGJ.S vs TNC Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python 学习笔记
2008/12/27 Python
python概率计算器实例分析
2015/03/25 Python
以视频爬取实例讲解Python爬虫神器Beautiful Soup用法
2016/01/20 Python
pycharm中使用anaconda部署python环境的方法步骤
2018/12/19 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
HTML5中使用postMessage实现Ajax跨域请求的方法
2016/04/19 HTML / CSS
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
出纳员岗位职责
2014/03/13 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
入股协议书范本
2014/04/14 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
大学生职业生涯规划大赛作品(精品)
2014/09/17 职场文书
2014年手术室工作总结
2014/11/26 职场文书
2015年大学元旦晚会活动策划书
2014/12/09 职场文书
2016年优秀团支部事迹材料
2016/02/26 职场文书
合作意向书怎么写
2019/06/24 职场文书
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers