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中的CACHE_BACKEND参数和站点级Cache设置
Jul 23 Python
python如何通过protobuf实现rpc
Mar 06 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
python生成随机图形验证码详解
Nov 08 Python
python thrift搭建服务端和客户端测试程序
Jan 17 Python
python如何定义带参数的装饰器
Mar 20 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
Sep 17 Python
python add_argument()用法解析
Jan 29 Python
django有哪些好处和优点
Sep 01 Python
python实现求纯色彩图像的边框
Apr 08 Python
Python爬虫实战之爬取携程评论
Jun 02 Python
python基础之爬虫入门
python设置 matplotlib 正确显示中文的四种方式
提取视频中的音频 Python只需要三行代码!
Python-typing: 类型标注与支持 Any类型详解
May 10 #Python
超详细Python解释器新手安装教程
Python机器学习三大件之一numpy
python实现自动清理文件夹旧文件
May 10 #Python
You might like
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
PHP7新增函数
2021/03/09 PHP
JavaScript高级程序设计
2006/12/29 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
判断浏览器的javascript版本的代码
2010/09/03 Javascript
15款jQuery分布引导插件分享
2015/02/04 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
运用js教你轻松制作html音乐播放器
2020/04/17 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
2016/11/10 Javascript
ES2015 Symbol 一种绝不重复的值
2016/12/25 Javascript
微信小程序网络请求的封装与填坑之路
2017/04/01 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
详解通过源码解析Node.js中cluster模块的主要功能实现
2018/05/16 Javascript
Vue实现左右菜单联动实现代码
2018/08/12 Javascript
vue服务端渲染添加缓存的方法
2018/09/18 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
React中使用UMEditor的方法示例
2019/12/27 Javascript
JS性能优化实现方法及优点进行
2020/08/30 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
Python实例分享:快速查找出被挂马的文件
2014/06/08 Python
Python多线程和队列操作实例
2015/06/21 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
Python根据服务获取端口号的方法
2019/09/25 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
超级实用的8个Python列表技巧
2020/08/24 Python
adidas泰国官网:adidas TH
2020/07/11 全球购物
波兰汽车配件网上商店:iParts.pl
2020/09/08 全球购物
教师找工作推荐信
2013/11/23 职场文书
python实现Thrift服务端的方法
2021/04/20 Python