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的加密模块md5、sha、crypt使用实例
Sep 28 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
django用户注册、登录、注销和用户扩展的示例
Mar 19 Python
Python修改文件往指定行插入内容的实例
Jan 30 Python
windows下python虚拟环境virtualenv安装和使用详解
Jul 16 Python
python 图片二值化处理(处理后为纯黑白的图片)
Nov 01 Python
python利用百度云接口实现车牌识别的示例
Feb 21 Python
Python单链表原理与实现方法详解
Feb 22 Python
Django 5种类型Session使用方法解析
Apr 29 Python
python如何导入依赖包
Jul 13 Python
10个python爬虫入门实例(小结)
Nov 01 Python
python 递归相关知识总结
Mar 03 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
Windows下安装Memcached的步骤说明
2010/04/25 PHP
PHP register_shutdown_function函数的深入解析
2013/06/03 PHP
PHP上传文件时文件过大$_FILES为空的解决方法
2013/11/26 PHP
Thinkphp中import的几个用法详细介绍
2014/07/02 PHP
PHP连接MySQL数据库操作代码实例解析
2020/07/11 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
js数字输入框(包括最大值最小值限制和四舍五入)
2009/11/24 Javascript
JQuery 将元素显示在屏幕的中央的代码
2010/02/27 Javascript
js 强制弹出窗口代码研究-又一款代码
2010/03/20 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
javascript实现移动端上的触屏拖拽功能
2016/03/04 Javascript
react实现一个优雅的图片占位模块组件详解
2017/10/30 Javascript
Vue2.0中集成UEditor富文本编辑器的方法
2018/03/03 Javascript
详解Webpack loader 之 file-loader
2018/11/07 Javascript
Vue解析剪切板图片并实现发送功能
2020/02/04 Javascript
Javascript生成器(Generator)的介绍与使用
2021/01/31 Javascript
[41:17]VG vs Optic 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python实现的飞速中文网小说下载脚本
2015/04/23 Python
matplotlib.pyplot画图 图片的二进制流的获取方法
2018/05/24 Python
python版飞机大战代码分享
2018/11/20 Python
详解Python是如何实现issubclass的
2019/07/24 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
2019/08/12 Python
Python txt文件常用读写操作代码实例
2020/08/03 Python
python 实时调取摄像头的示例代码
2020/11/25 Python
物业管理公司实习生自我鉴定
2013/09/19 职场文书
岗位竞聘演讲稿
2014/01/10 职场文书
早读迟到检讨书
2014/01/24 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
作文评语大全
2014/04/23 职场文书
人事专员岗位说明书
2014/07/29 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
公司岗位说明书
2015/10/08 职场文书
大学军训通讯稿(2016最新版)
2015/12/21 职场文书
2016计划生育先进个人事迹材料
2016/02/29 职场文书
学校学习型党组织建设心得体会
2019/06/21 职场文书