当试图对一个大的csv文件进行查找和替换时,如何处理MemoryError?

2024-03-29 08:06:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我是一个初学者,在我的代码中有记忆错误的问题。csv文件很大(1,5gb),我想查找每个"字符并用空格替换。代码正在处理较小的文件,但在这个文件上它的返回内存错误。我在这里发现,我可以使用垃圾收集器,并试图使它,但失败了。我怎样才能解决这个问题

text = open(r"C:\Users\jarze\abc.csv", "r")
text = ''.join([i for i in text]) \
    .replace('"', '')
x = open(r"C:\Users\jarze\abc.csv","w")
x.writelines(text)
x.close()

Tags: 文件csv记忆内存代码text错误open
1条回答
网友
1楼 · 发布于 2024-03-29 08:06:09

对于一般情况here已回答了这一问题

总之,python的file对象已经是一个生成器,并被定义为一种逐行读取文件的高效内存方式(请参见here):

f_out = open(r"C:\Users\jarze\out_file.csv","w")

with open(r"C:\Users\jarze\in_file.csv", "r") as f_in:
    ''' 
    As Tomerikoo indicates, This is a preferred way of opening 
    files in python and you don't need to close it later.
    '''
    for line in f_in:
        f_out.write(line.replace('"', ''))    

f_out.close()    

相关问题 更多 >