利用Python批量将csv文件转化成xml文件

举报
叶庭云 发表于 2021/08/06 00:55:14 2021/08/06
3.7k+ 0 0
【摘要】 文章目录 一、前言二、Python代码实现 一、前言 将 csv 格式转换成xml格式有许多方法,可以用数据库的方式,也有许多软件可以将 csv 转换成xml。但是比较麻烦,本文利用 Python 一键批量将 csv 文件转化成 xml 文件。 逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不...

一、前言

将 csv 格式转换成xml格式有许多方法,可以用数据库的方式,也有许多软件可以将 csv 转换成xml。但是比较麻烦,本文利用 Python 一键批量将 csv 文件转化成 xml 文件。

逗号分隔值(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')

  
 

结果如下:

用编辑器打开可以看到 xml 文件的内容(我用的Sublime Text),如下所示

文章来源: yetingyun.blog.csdn.net,作者:叶庭云,版权归原作者所有,如需转载,请联系作者。

原文链接:yetingyun.blog.csdn.net/article/details/113755682

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。