Python批量将csv文件转化成xml文件的实例

 更新时间:2021年05月10日 16:24:04   作者:叶庭云  
将 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),如下所示

以上就是Python批量将csv文件转化成xml文件的实例的详细内容,更多关于Python csv文件转化成xml文件的资料请关注脚本之家其它相关文章!

相关文章

  • pycharm找不到conda可执行文件怎么解决

    pycharm找不到conda可执行文件怎么解决

    这篇文章主要给大家介绍了关于pycharm找不到conda可执行文件怎么解决的相关资料,文中通过图文介绍非常的详细,对大家的学习或者工作具有一的参考学习价值,需要的朋友可以参考下
    2023-07-07
  • Python pytorch实现绘制一维热力图

    Python pytorch实现绘制一维热力图

    热力图是非常特殊的一种图,可以显示不可点击区域发生的事情,这篇文章主要为大家介绍了如何利用pytorch实现绘制一维热力图,感兴趣的可以了解一下
    2023-05-05
  • Python3下错误AttributeError: ‘dict’ object has no attribute’iteritems‘的分析与解决

    Python3下错误AttributeError: ‘dict’ object has no attribute’ite

    这篇文章主要跟大家介绍了关于在Python3下错误AttributeError: 'dict' object has no attribute 'iteritems'的分析与解决方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-07-07
  • Python实现购物车功能的方法分析

    Python实现购物车功能的方法分析

    这篇文章主要介绍了Python实现购物车功能的方法,结合实例形式分析了Python实现购物车功能的具体步骤、相关操作技巧与注意事项,需要的朋友可以参考下
    2017-11-11
  • 使用Python编写文件重复检查器的完整代码

    使用Python编写文件重复检查器的完整代码

    在日常工作中,我们经常需要处理大量文件,但有时候会遇到文件重复的情况,为了有效管理文件并避免重复占用存储空间,我们可以编写一个简单的Python程序来检查文件夹中是否存在重复文件,本文将介绍如何使用Python和其库来编写一个文件重复检查器
    2024-08-08
  • Python实现将图片转换为ASCII字符画

    Python实现将图片转换为ASCII字符画

    这篇文章主要介绍了Python实现将图片转换为ASCII字符画,要将图片转换为字符图其实很简单,我们首先将图片转换为灰度图像,这样图片的每个像素点的颜色值都是0到255,然后我们选用一些在文字矩形框内占用面积从大到小的ASCII码字符
    2022-08-08
  • Python中的进程分支fork和exec详解

    Python中的进程分支fork和exec详解

    这篇文章主要介绍了Python中的进程分支fork和exec详解,本文用实例讲解fork()的使用,并讲解了exec相关的8个方法等内容,需要的朋友可以参考下
    2015-04-04
  • numpy如何按条件给元素赋值np.where、np.clip

    numpy如何按条件给元素赋值np.where、np.clip

    这篇文章主要介绍了numpy如何按条件给元素赋值np.where、np.clip问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python+MongoDB自增键值的简单实现

    Python+MongoDB自增键值的简单实现

    下面小编就为大家带来一篇Python+MongoDB自增键值的简单实现。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • Pyinstaller打包工具的使用以及避坑

    Pyinstaller打包工具的使用以及避坑

    本文主要的是pyinstaller在windows下的基本使用和基础避坑,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11

最新评论