需求:
某些時候,我們需要將其他格式資料轉換為xml,例如我們要把yikang.csv檔案,轉換成相應的xml。
yikang.csv:
日期,****,名稱,**價,最**,最低價,開盤價,前**,漲跌額,漲跌幅,換手率,成交量,成交金額,總市值,流通市值,成交筆數
2016-01-08,'002566,益盛藥業,14.23,14.46,13.26,14.2,13.8,0.43,3.1159,2.6702,8837225,124872735.08,4709441268.0,4709441268.0,8033
yikang.xml:
...思路:
使用標準庫中的xml.etree.elementree,構建elementtree,使用write方法寫入檔案
**:
import csv
from xml.etree.elementtree import element,elementtree
from e2 import pretty
def csvtoxml(fname):
with open(fname,'r',encoding='gbk') as f:
reader = csv.reader(f) # 讀取csv,要先建立乙個reader
headers = next(reader) # 讀取csv的頭部資訊
root = element('data') # 為xml建立乙個根元素
# 迭代csv檔案中的每一行
for row in reader:
erow = element('row') # 每一行建立乙個row元素
# 同時迭代tag(headers),text(row)
for tag, text in zip(headers,row):
e = element(tag) # 為headers中每乙個建立乙個xml中的元素
e.text = text
pretty(root) # 進行格式的美化
return elementtree(root) # 建立乙個elementtree,即乙個xml物件
if __name__ == "__main__":
et = csvtoxml('yikang.csv')
# 呼叫write方法把xml物件寫入檔案中,生成乙個xml檔案
et.write('yikang.xml')
e2.py:
def pretty(e,level=0):
if len(e) > 0:
e.text = '\n' + '\t' * (level + 1)
for child in e:
pretty(child,level + 1)
child.tail = child.tail[:-1]
e.tail = '\n' + '\t' * level
如何得到XML文件大小
xml文件從格式到大小都是不是確定的。有的可能只有幾行,而有的卻有好幾兆位元組。你也許會懷疑是不是需要了解 xml文件的大小。而當效能成為首要問題時,知道 xml文件大小就是件必須要作的事情了。從效能角度講,有兩類處理xml文件的方法。批量處理方式需要較短的時間,解析成組的文件。實時方式就是實時的處...
XML 略談DTD XML文件的合法構建模組
dtd 文件型別定義 的作用是定義 xml 文件的合法構建模組。它使用一系列的合法元素來定義文件結構。以上是官方發言。說幹就幹,寫了點測試 試了試dtd的引入,話不多說上 dtd檔案 element 班級 學生 老師 年級 元素 號代表可以有多個 element 學生 名字,性別,年齡,介紹,愛好 ...
如何繫結DATAGRID控制項和XML文件
在網上找了一些資料,但是都沒有說明白原理,幸虧高人指點了解一二 肯定是將xml轉化為dataset 作的。轉化就不說了,肯定了解,就看一下xml轉化為dataset後的結構 我自己寫了點 試驗了以下,我的xml檔案是這樣的 這樣轉化為dataset時其實有兩個表,items 和 item items...