如何解决尝试在大型csv文件中进行查找和替换时如何处理MemoryError?
我是新手,我的代码存在MemoryError问题。 csv文件很大(1,5gb),我想查找每个"
字符并将其替换为空白。代码正在处理较小的文件,但在此文件上返回MemoryError。我在这里发现我可以使用垃圾收集器,并试图做到这一点,但是失败了。我该如何解决这个问题?
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()
解决方法
对于一般情况here
,我们已经回答了这个问题总而言之,python的文件对象已经是一个生成器,并且被定义为一种内存有效的方式来逐行读取文件(请参见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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。