我正在尝试在 python 脚本中打开大型 .csv 文件(16k 行+,~15 列),但遇到了一些问题。
我使用内置的 open() 函数打开文件,然后使用输入文件声明一个 csv.DictReader。循环的结构如下:
for (i, row) in enumerate(reader):
# do stuff (send serial packet, read response)
但是,如果我使用超过 20 行的文件,该文件将打开,但在几次迭代中,我得到一个 ValueError: I/O operation on a closed file。
我的想法是我可能内存不足(虽然 16k 行文件只有 8MB,而且我有 3GB 内存),在这种情况下,我希望我需要使用某种缓冲区来仅加载部分一次归档到内存中。
我在正确的轨道上吗?或者可能有其他原因导致文件意外关闭?
编辑:大约有一半的时间我用 11 行的 csv 运行它,它给了我 ValueError。错误并不总是发生在同一行