欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python批量將csv文件轉(zhuǎn)化成xml文件的實例

 更新時間:2021年05月10日 16:24:04   作者:葉庭云  
將 csv 格式轉(zhuǎn)換成xml格式有許多方法,可以用數(shù)據(jù)庫的方式,也有許多軟件可以將 csv 轉(zhuǎn)換成xml。但是比較麻煩,本文利用 Python 一鍵批量將 csv 文件轉(zhuǎn)化成 xml 文件。

一、前言

逗號分隔值(Comma-Separated Values,CSV,有時也稱為字符分隔值,因為分隔字符也可以不是逗號),其文件以純文本形式存儲表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個字符序列,不含必須像二進制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見的是逗號或制表符。通常,所有記錄都有完全相同的字段序列,通常都是純文本文件。

可擴展標記語言,標準通用標記語言的子集,簡稱XML。是一種用于標記電子文件使其具有結(jié)構(gòu)性的標記語言。在電子計算機中,標記指計算機所能理解的信息符號,通過此種標記,計算機之間可以處理包含各種的信息比如文章等。它可以用來標記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對自己的標記語言進行定義的源語言。 它非常適合萬維網(wǎng)傳輸,提供統(tǒng)一的方法來描述和交換獨立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。

二、Python代碼實現(xiàn)

導(dǎo)入用到的庫

from xml.etree.ElementTree import Element, ElementTree
import csv
from pathlib import Path
import os

創(chuàng)建一個文件夾,用來保存轉(zhuǎn)換后的xml文件

# 創(chuàng)建一個文件夾  用來保存轉(zhuǎn)換后的xml文件
path = os.path.join('xml_file')
if not os.path.exists(path):
    os.mkdir(path)

獲取所有待轉(zhuǎn)換的csv文件

# 獲取所有待轉(zhuǎn)換的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 文件轉(zhuǎn)換為 xml 文件

# 將csv文件轉(zhuǎn)換為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))
        # 處理轉(zhuǎn)換
        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

主函數(shù)調(diào)用

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')

結(jié)果如下:

用編輯器打開可以看到 xml 文件的內(nèi)容(我用的Sublime Text),如下所示

以上就是Python批量將csv文件轉(zhuǎn)化成xml文件的實例的詳細內(nèi)容,更多關(guān)于Python csv文件轉(zhuǎn)化成xml文件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在Gnumeric下使用Python腳本操作表格的教程

    在Gnumeric下使用Python腳本操作表格的教程

    這篇文章主要介紹了在Gnumeric下使用Python腳本操作表格的教程,本文來自于IBM官方網(wǎng)站,需要的朋友可以參考下
    2015-04-04
  • python如何更新包

    python如何更新包

    在本篇文章里小編給大家整理的是關(guān)于python更新包的相關(guān)知識點內(nèi)容,有興趣的朋友們可以參考下。
    2020-06-06
  • pandas使用apply多列生成一列數(shù)據(jù)的實例

    pandas使用apply多列生成一列數(shù)據(jù)的實例

    今天小編就為大家分享一篇pandas使用apply多列生成一列數(shù)據(jù)的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • Python實現(xiàn)簡單石頭剪刀布小游戲的示例代碼

    Python實現(xiàn)簡單石頭剪刀布小游戲的示例代碼

    石頭剪刀布是一種簡單而又經(jīng)典的游戲,常常用于決定勝負或者娛樂消遣,本文將使用Python實現(xiàn)一個簡單的石頭剪刀布游戲,需要的可以參考一下
    2023-06-06
  • python解析中國天氣網(wǎng)的天氣數(shù)據(jù)

    python解析中國天氣網(wǎng)的天氣數(shù)據(jù)

    最近學(xué)習(xí)python 感覺這門腳本語言十分靈活 而且功能十分強大 尤其是他re庫用于正則匹配十分強大,寫了個例子解析中國天氣網(wǎng)
    2014-03-03
  • Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解

    Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解

    這篇文章主要介紹了Python3+Pycharm+PyQt5環(huán)境搭建步驟圖文詳解,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • python裝飾器簡介及同時使用多個裝飾器的方法

    python裝飾器簡介及同時使用多個裝飾器的方法

    這篇文章主要介紹了python裝飾器簡介及同時使用多個裝飾器的方法,python支持一個函數(shù)同時使用多個裝飾器,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-06-06
  • Python爬蟲實現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能案例

    Python爬蟲實現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能案例

    這篇文章主要介紹了Python爬蟲實現(xiàn)使用beautifulSoup4爬取名言網(wǎng)功能,結(jié)合實例形式分析了Python基于beautifulSoup4模塊爬取名言網(wǎng)并存入MySQL數(shù)據(jù)庫相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • Python實現(xiàn)人生重開模擬器小游戲講解

    Python實現(xiàn)人生重開模擬器小游戲講解

    這篇文章主要介紹了Python實現(xiàn)人生重開模擬器小游戲,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-01-01
  • Python查看已安裝包的版本號的多種方法

    Python查看已安裝包的版本號的多種方法

    很多朋友一直使用pip list來查詢,但如果想知道單個,應(yīng)該怎么使用呢,在Python中,可以使用多種方法來查看已安裝包的版本號,本文給大家詳細介紹了Python查看已安裝包的版本號的多種方法,需要的朋友可以參考下
    2024-02-02

最新評論