python 文件 读取 指针 复位_python读取xml文件

从某网站上导出的数据,后缀名为.xls,但是实质为xml文档,于是应用xml包去读取xml文档,返回一个列表。下面是示例代码:

1c31e764efc805fa254d0757081db881.png
#导入包
import xml.etree.ElementTree as ET

class mytree:
    def __init__(self,xml_file):
        self.tree = ET.parse(xml_file)
        self.root =  self.tree.getroot()
        self.apple = []
    def val_leaves(self, node):
        #判断是否为叶子节点
        children = []
        for child in node:
            children.append(child)
        if len(children) == 0:
            return True
        else:
            return False

    def get_children(self, node):
        #产生儿子节点
        children = []
        for child in node:
            children.append(child)
        return children

    def grow_apple(self, node):
        #长出水果
        if self.val_leaves(node):
            pass
        else:
            children = self.get_children(node)
            basket = []
            for child in children:
                if self.val_leaves(child):
                    #控制得到是果实,或者枝头的其他属性
                    if child.text == None:
                        basket.append(child.attrib)
                    else:
                        basket.append(child.text)
                else:
                    self.grow_apple(child)
            self.apple.append(basket)
            
    def get_apple(self):
        #得到所有水果
        self.grow_apple(self.root)
        return self.apple
    
if __name__ == "__main__":
    file = "test.xls"
    mytree = mytree(file)
    data = mytree.get_apple()
    for item in data:
        print(item)

输出:

b8d544f43b0e451ec95c2ef851c9541a.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值