Python批量將csv文件轉(zhuǎn)化成xml文件的實(shí)例
一、前言
逗號(hào)分隔值(Comma-Separated Values,CSV,有時(shí)也稱為字符分隔值,因?yàn)榉指糇址部梢圆皇嵌禾?hào)),其文件以純文本形式存儲(chǔ)表格數(shù)據(jù)(數(shù)字和文本)。純文本意味著該文件是一個(gè)字符序列,不含必須像二進(jìn)制數(shù)字那樣被解讀的數(shù)據(jù)。CSV文件由任意數(shù)目的記錄組成,記錄間以某種換行符分隔;每條記錄由字段組成,字段間的分隔符是其它字符或字符串,最常見(jiàn)的是逗號(hào)或制表符。通常,所有記錄都有完全相同的字段序列,通常都是純文本文件。
可擴(kuò)展標(biāo)記語(yǔ)言,標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言的子集,簡(jiǎn)稱XML。是一種用于標(biāo)記電子文件使其具有結(jié)構(gòu)性的標(biāo)記語(yǔ)言。在電子計(jì)算機(jī)中,標(biāo)記指計(jì)算機(jī)所能理解的信息符號(hào),通過(guò)此種標(biāo)記,計(jì)算機(jī)之間可以處理包含各種的信息比如文章等。它可以用來(lái)標(biāo)記數(shù)據(jù)、定義數(shù)據(jù)類型,是一種允許用戶對(duì)自己的標(biāo)記語(yǔ)言進(jìn)行定義的源語(yǔ)言。 它非常適合萬(wàn)維網(wǎng)傳輸,提供統(tǒng)一的方法來(lái)描述和交換獨(dú)立于應(yīng)用程序或供應(yīng)商的結(jié)構(gòu)化數(shù)據(jù)。
二、Python代碼實(shí)現(xiàn)
導(dǎo)入用到的庫(kù)
from xml.etree.ElementTree import Element, ElementTree import csv from pathlib import Path import os
創(chuàng)建一個(gè)文件夾,用來(lái)保存轉(zhuǎn)換后的xml文件
# 創(chuàng)建一個(gè)文件夾 用來(lái)保存轉(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('請(qǐng)輸入你存放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) # 跳過(guò)表頭
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é)果如下:

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

以上就是Python批量將csv文件轉(zhuǎn)化成xml文件的實(shí)例的詳細(xì)內(nèi)容,更多關(guān)于Python csv文件轉(zhuǎn)化成xml文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Python pandas讀取CSV文件的注意事項(xiàng)(適合新手)
- 使用Python pandas讀取CSV文件應(yīng)該注意什么?
- python 如何把classification_report輸出到csv文件
- python刪除csv文件的行列
- 使用python把json文件轉(zhuǎn)換為csv文件
- python 如何讀、寫(xiě)、解析CSV文件
- python讀寫(xiě)數(shù)據(jù)讀寫(xiě)csv文件(pandas用法)
- Python將list元素轉(zhuǎn)存為CSV文件的實(shí)現(xiàn)
- 利用python 讀寫(xiě)csv文件
- Python如何讀寫(xiě)CSV文件
- 如何運(yùn)用python讀寫(xiě)CSV文件
相關(guān)文章
Python?pytorch實(shí)現(xiàn)繪制一維熱力圖
熱力圖是非常特殊的一種圖,可以顯示不可點(diǎn)擊區(qū)域發(fā)生的事情,這篇文章主要為大家介紹了如何利用pytorch實(shí)現(xiàn)繪制一維熱力圖,感興趣的可以了解一下2023-05-05
Python3下錯(cuò)誤AttributeError: ‘dict’ object has no attribute’ite
這篇文章主要跟大家介紹了關(guān)于在Python3下錯(cuò)誤AttributeError: 'dict' object has no attribute 'iteritems'的分析與解決方法,文中介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-07-07
Python實(shí)現(xiàn)購(gòu)物車功能的方法分析
這篇文章主要介紹了Python實(shí)現(xiàn)購(gòu)物車功能的方法,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)購(gòu)物車功能的具體步驟、相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下2017-11-11
使用Python編寫(xiě)文件重復(fù)檢查器的完整代碼
在日常工作中,我們經(jīng)常需要處理大量文件,但有時(shí)候會(huì)遇到文件重復(fù)的情況,為了有效管理文件并避免重復(fù)占用存儲(chǔ)空間,我們可以編寫(xiě)一個(gè)簡(jiǎn)單的Python程序來(lái)檢查文件夾中是否存在重復(fù)文件,本文將介紹如何使用Python和其庫(kù)來(lái)編寫(xiě)一個(gè)文件重復(fù)檢查器2024-08-08
Python實(shí)現(xiàn)將圖片轉(zhuǎn)換為ASCII字符畫(huà)
這篇文章主要介紹了Python實(shí)現(xiàn)將圖片轉(zhuǎn)換為ASCII字符畫(huà),要將圖片轉(zhuǎn)換為字符圖其實(shí)很簡(jiǎn)單,我們首先將圖片轉(zhuǎn)換為灰度圖像,這樣圖片的每個(gè)像素點(diǎn)的顏色值都是0到255,然后我們選用一些在文字矩形框內(nèi)占用面積從大到小的ASCII碼字符2022-08-08
numpy如何按條件給元素賦值np.where、np.clip
這篇文章主要介紹了numpy如何按條件給元素賦值np.where、np.clip問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
Python+MongoDB自增鍵值的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇Python+MongoDB自增鍵值的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11

