python写xml文件 数据量特别大_Python:如何在1中处理大量child的大型XML文件

您可以使用iterparse方法来处理大型xml文件。但是,文件的结构特别简单。使用iterparse将是不必要的复杂。在

我将在一个脚本中提供两个答案。我通过演示如何使用lxml解析xml中的行来直接回答您的问题,并且我提供了我认为使用regex可能是更好的答案。在

代码读取xml中的每一行,并忽略那些不以“try…”开头的行。。。除了。当脚本找到这样一行时,它将它从lxml传递给etree进行解析,然后显示该行的属性。然后它使用正则表达式解析出相同的属性并显示它们。在

我强烈怀疑正则表达式会更快。在>>> from lxml import etree

>>> report = '''\

...

...

...

...

...

...

... '''

>>> import re

>>> re.search(r'name="([^"]*)"\s+surname="([^"]*)', line).groups()

('John', 'Smith')

>>> for line in report.split('\n'):

... if line.strip().startswith('

... tree = etree.fromstring(line.replace('>', '/>'))

... tree.attrib['name'], tree.attrib['surname']

... re.search(r'name="([^"]*)"\s+surname="([^"]*)', line).groups()

...

('John', 'Smith')

('John', 'Smith')

('Michael', 'Smith')

('Michael', 'Smith')

('Nick', 'Smith')

('Nick', 'Smith')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值