如何iterparse一个zipfile对象

时间:2017-03-24 16:16:05

标签: python xml parsing zip elementtree

如何将zipfile对象转换为可用于iterparse函数的对象?

for name in zipfile.namelist():
xml_zip = zipfile.open(name, 'r')

for bla, elem in etree.iterparse(xml_zip):
    print bla

我尝试将带有.read()的zipfile对象转换为字符串。但这会产生问题,因为它不是Unicode。最好的方法是什么?

1 个答案:

答案 0 :(得分:1)

你应该发布一个完整的例子,你发布的代码片段不起作用,iterparse不是etree模块的属性。这有效:

import zipfile
from xml.etree import ElementTree

with zipfile.ZipFile('zipfile.zip') as z:
    for fname in z.namelist():
        with z.open(fname) as f:
            for event, elem in ElementTree.iterparse(f):
                print elem