下面是一个代码,它将打开.csv文件并在第0行
处插入标题我想要做的是创建一个循环,以便我可以将代码指向一个目录并逐个循环遍历每个文件。目录中的每个文件都有2300万行,当我尝试编写循环时,我遇到内存错误。下面的代码适用于单个文本文件。
import os
L = list()
f = open(in.txt, 'rb')
for line in f.readlines():
L.append(line)
L.insert(0,"x,y\n")
f.close()
f1 = open(in.txt, 'wb')
for line in xrange(len(L)):
f1.write(L[line])
f1.close()
答案 0 :(得分:3)
shutil.copyfileobj()
复制内容,然后重命名。
答案 1 :(得分:1)
Readlines将整个文件读入内存。这样做是为了一次读取一行文件。
for line in f:
L.append(line)
您不需要在第二个循环中使用xrange。您可以直接在数组上循环。您错误地关闭循环内的文件。尝试:
for line in L:
f1.write(line)
f1.close()
修改强>
Ignacio为这个问题提供了一个更好的解决方案,但一般来说,你应该使用我的解决方案来迭代文件中的行。