import xml.etree.ElementTree as ET
'''
XML 是一种分层数据格式, 可以用树结构表示
ElementTree 将整个 XML 文档表示为一棵树, 对整个文档操作(读取/写入)在 ElementTree 上完成
Element 表示该树中的单个节点, 对 XML 的元素操作在 Element 上完成
'''
tree = ET.parse('.../xxx.xml')# ElementTree 读取整个文档
root = tree.getroot()# Element 获取根节点(根元素)
功能
返回数据
Element.tag
获取当前元素名
字符串
Element.attrib
获取当前元素所有属性
字典
Element.items()
获取当前元素所有属性
列表
Element.keys()
获取当前元素所有属性名
列表
Element.get('属性名')
获取当前元素指定属性名的属性值
字符串
Element.text
获取当前元素的文本内容
字符串
Element.find('元素名')
获取当前元素下第一个该元素名的子元素(一级)
Element
Element.findall('元素名')
获取当前元素下所有该元素名的子元素(一级)
列表
Element.findtext('元素名')
获取当前元素下第一个该元素名的子元素(一级)的文本内容
字符串
list(Element)
获取当前元素下所有的子元素(一级)
列表
Element.getiterator('元素名')
获取当前元素下所有该元素名的子元素(n级)
迭代器
不指定元素名则为所有子元素(n级)
Element.iter('元素名')
与Element.getiterator()用法相同
迭代器
Element.iterfind('元素名')
获取当前元素下所有该元素名的子元素(一级)
迭代器
'''
Element 可以像列表一样索引
'''
Input: root[0][1].text
Output:'2008'
Input: root[0:2]
Output:[<Element 'country' at 0x0000018AE50B3368>,<Element 'country' at 0x0000018AE50BAA98>]
3.3 修改
功能
Element.set('属性名', '属性值')
将元素上的属性设为该值,属性不存在则会添加该属性
Element.append(Element)
在末尾添加子元素
ET.Element('元素名')
新建元素
ET.SubElement(Element, '元素名', attrib={})
父元素下创建子元素并返回子元素
ET.ElementTree()
新建树
ElementTree._setroot(Element)
设置树的根元素
3.4 写入
tree.write('.../xxx.xml')
4. txt
4.1 读取
withopen('.../xxx.txt','r')as f:
data = f.read()
data = f.readline()
data = f.readlines()'''
三种读取模式
read() 返回字符串, 包含txt中所有内容
readline() 返回字符串, 包含一行的内容, 再运行一次得到下一行内容
readlines() 返回列表, 列表中每个字符串为txt中一行内容
'''
# example
a = np.array([1,2,3])
b = np.array([4,5,6])
np.savez('test1', a = a, b = b)
np.savez('test2.npz', a, b)
npzFile1 = np.load('test1.npz')
npzFile2 = np.load('test2.npz')print(npzFile1.files)>>>['a','b']print(npzFile2.files)>>>['arr_0','arr_1']print(npzFile1['a'])>>>[123]