【问题标题】:ValueError: I/O operation on closed file error for dblp datasetValueError:对 dblp 数据集的关闭文件错误的 I/O 操作
【发布时间】:2016-03-11 00:08:07
【问题描述】:

我正在尝试将 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

我不知道这是怎么回事。我已经用谷歌搜索了它,但还没有找到合适的解释。谁能告诉我如何解决它?非常感谢。

【问题讨论】:

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

标签: python xml python-2.7 lxml


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-27
    • 2016-07-21
    • 2015-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-18
    相关资源
    最近更新 更多