我正在尝试将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
我得到了ValueError:
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
我不知道这是怎么发生的。我用谷歌搜索了它,但还没有找到合适的解释。谁能告诉我如何解决它?非常感谢。
答案 0 :(得分:0)
我认为您的问题是您在with语句之外处理上下文,这意味着您的文件将被关闭。