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 相关文章推荐
Django跨域请求问题的解决方法示例
Jun 16 Python
python cs架构实现简单文件传输
Mar 20 Python
Python线程之定位与销毁的实现
Feb 17 Python
python2.7使用plotly绘制本地散点图和折线图
Apr 02 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
Python注释、分支结构、循环结构、伪“选择结构”用法实例分析
Jan 09 Python
python 实现将Numpy数组保存为图像
Jan 09 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
Python简单实现词云图代码及步骤解析
Jun 04 Python
python如何提升爬虫效率
Sep 27 Python
通用的Django注册功能模块实现方法
Feb 05 Python
Python列表的索引与切片
Apr 07 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
2020/10/28 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
浅谈JavaScript中的对象及Promise对象的实现
2015/11/15 Javascript
在JavaScript中调用Java类和接口的方法
2016/09/07 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
jQuery实现table表格信息的展开和缩小功能示例
2018/07/21 jQuery
JS代码优化的8点建议
2020/02/04 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
2020/08/04 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
wxPython中listbox用法实例详解
2015/06/01 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
详解python里使用正则表达式的分组命名方式
2017/10/24 Python
用python与文件进行交互的方法
2018/03/01 Python
Python递归实现汉诺塔算法示例
2018/03/19 Python
Pytorch evaluation每次运行结果不同的解决
2020/01/02 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
计算机系毕业生推荐信
2013/11/06 职场文书
体育教育专业毕业生自荐信
2013/11/15 职场文书
车间机修工岗位职责
2014/02/28 职场文书
房地产促销活动方案
2014/03/01 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
社区安全生产月活动总结
2014/07/05 职场文书
国家奖学金获奖感言
2014/08/16 职场文书
机械专业毕业生自我鉴定2014
2014/10/04 职场文书
2015年入党决心书
2015/02/05 职场文书
工厂门卫岗位职责
2015/04/13 职场文书
公司回复函格式
2015/07/14 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python