我将尝试在Python脚本中打开大型的.csv文件(16k行+,约15列),但是遇到了一些问题。
我使用内置的open()函数打开文件,然后使用输入文件声明csv.DictReader。循环结构如下:
然而,如果我使用超过大约20行的文件,则该文件将打开,但在几次迭代之后,我会收到ValueError:在关闭的文件上进行I/O操作。 我的想法是我可能用尽了内存(尽管16k行文件仅为8MB,我有3GB的RAM),在这种情况下,我希望我需要使用某种缓冲区一次只加载文件的部分到内存中。
我走对了吗?还是文件意外关闭可能有其他原因?
编辑:对于11行的csv,我运行此程序约一半的时间会出现ValueError。错误并不总是发生在同一行。
我使用内置的open()函数打开文件,然后使用输入文件声明csv.DictReader。循环结构如下:
for (i, row) in enumerate(reader):
# do stuff (send serial packet, read response)
然而,如果我使用超过大约20行的文件,则该文件将打开,但在几次迭代之后,我会收到ValueError:在关闭的文件上进行I/O操作。 我的想法是我可能用尽了内存(尽管16k行文件仅为8MB,我有3GB的RAM),在这种情况下,我希望我需要使用某种缓冲区一次只加载文件的部分到内存中。
我走对了吗?还是文件意外关闭可能有其他原因?
编辑:对于11行的csv,我运行此程序约一半的时间会出现ValueError。错误并不总是发生在同一行。
for row in reader
时,我也遇到了相同的错误。 - Trey