gpt4 book ai didi

python - 对大型 .csv 文件使用缓冲阅读器,Python

转载 作者:太空宇宙 更新时间:2023-11-03 11:10:17 25 4
gpt4 key购买 nike

我正在尝试在 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。错误并不总是发生在同一行

最佳答案

16k 行对于 3GB Ram 来说毫无意义,很可能你的问题是其他问题,例如您在其他干扰打开文件的进程中花费了太多时间。只是为了确保速度,当你有 3GB ram 时,将整个文件加载到内存中然后解析例如

import csv
import cStringIO
data = open("/tmp/1.csv").read()
reader = csv.DictReader(cStringIO.StringIO(data))
for row in reader:
print row

在这至少你不应该得到文件打开错误。

关于python - 对大型 .csv 文件使用缓冲阅读器,Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com