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如何实现守护进程的方法示例
Feb 08 Python
python多进程和多线程究竟谁更快(详解)
May 29 Python
Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容
Feb 23 Python
python实现最小二乘法线性拟合
Jul 19 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
Python多叉树的构造及取出节点数据(treelib)的方法
Aug 09 Python
Python通过cv2读取多个USB摄像头
Aug 28 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
python 使用多线程创建一个Buffer缓存器的实现思路
Jul 02 Python
python调用私有属性的方法总结
Jul 24 Python
使用Python爬取小姐姐图片(beautifulsoup法)
Feb 11 Python
用python开发一款操作MySQL的小工具
May 12 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
Zerg兵种介绍
2020/03/14 星际争霸
php db类库进行数据库操作
2009/03/19 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
JQuery实现简单验证码提示解决方案
2012/12/20 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
jQuery简单实现iframe的高度根据页面内容自适应的方法
2016/08/01 Javascript
JQuery学习总结【二】
2016/12/01 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
jquery实现超简单的瀑布流布局【推荐】
2017/03/08 Javascript
Vue.js列表渲染绑定jQuery插件的正确姿势
2017/06/29 jQuery
微信小程序tabBar用法实例详解
2017/12/04 Javascript
linux 下以二进制的方式安装 nodejs
2020/02/12 NodeJs
Vue-cli3多页面配置详解
2020/03/22 Javascript
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
python实现马耳可夫链算法实例分析
2015/05/20 Python
python搭建微信公众平台
2016/02/09 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
Python实现word2Vec model过程解析
2019/12/16 Python
Win10下用Anaconda安装TensorFlow(图文教程)
2020/06/18 Python
virtualenv介绍及简明教程
2020/06/23 Python
python图片验证码识别最新模块muggle_ocr的示例代码
2020/07/03 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
表单button的outline在firefox浏览器下的问题
2012/12/24 HTML / CSS
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
Merchant 1948澳大利亚:新西兰领先的鞋类和靴子供应商
2018/03/24 全球购物
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
公务员总结性个人自我评价
2013/12/05 职场文书
会计学个人自荐信模板
2013/12/13 职场文书
社区服务活动报告
2015/02/05 职场文书
员工手册编写范本
2015/05/14 职场文书
矛盾论读书笔记
2015/06/29 职场文书
Linux中Nginx的防盗链和优化的实现代码
2021/06/20 Servers
js 实现验证码输入框示例详解
2022/09/23 Javascript