Python ValueError:dblp数据集的关闭文件错误上的I/O操作

Python ValueError:dblp数据集的关闭文件错误上的I/O操作,python,xml,python-2.7,lxml,Python,Xml,Python 2.7,Lxml,我试图将dblp数据集的xml文件解析为csv文件。现在,我正在使用lxml模块进行此操作,并测试不同的函数,以查看它们返回什么。 但是,当我运行以下代码时: with open('F:\\21up\\Data\\dblp.xml', 'rb') as f: context = etree.iterparse(f, dtd_validation=True, events= ("start","end")) context = iter(context) event, root = ne

我试图将dblp数据集的xml文件解析为csv文件。现在,我正在使用lxml模块进行此操作,并测试不同的函数,以查看它们返回什么。 但是,当我运行以下代码时:

with open('F:\\21up\\Data\\dblp.xml', 'rb') as f:
    context = etree.iterparse(f, dtd_validation=True, events= ("start","end"))

context = iter(context)
event, root = next(context)
for event, ele in context:
    print event
    print ele
我得到了一个错误:

    Traceback (most recent call last):
  File "F:\21up\Data\XML2CSV", line 35, in <module>
    iterpar()
  File "F:\21up\Data\XML2CSV", line 28, in iterpar
    event, root = next(context)
  File "iterparse.pxi", line 208, in lxml.etree.iterparse.__next__ (src\lxml\lxml.etree.c:131498)
ValueError: I/O operation on closed file
回溯(最近一次呼叫最后一次):
文件“F:\21up\Data\XML2CSV”,第35行,在
iterpar()
iterpar中第28行的文件“F:\21up\Data\XML2CSV”
事件,根=下一个(上下文)
文件“iterparse.pxi”,第208行,在lxml.etree.iterparse.\uuuu下一个\uuuuu中(src\lxml\lxml.etree.c:131498)
ValueError:对关闭的文件执行I/O操作

我不知道这是怎么发生的。我在谷歌上搜索过,但还没有找到合适的解释。有人能告诉我怎么解决吗?非常感谢。

我认为您的问题在于您在with语句之外处理上下文,这意味着,您的文件将在那时关闭。

问题解决了!非常感谢你!