[英]Create Loop from Existing Code
下面的代码将打开一个.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()
是的,不要那样做。 打开新文件,写出标题,使用shutil.copyfileobj()
复制内容,然后重命名。
Readlines将整个文件读入内存。 这样做一次一次读取文件。
for line in f:
L.append(line)
您无需在第二个循环中使用xrange。 您可以直接在数组上循环。 您错误地关闭了循环中的文件。 尝试:
for line in L:
f1.write(line)
f1.close()
编辑
Ignacio为该问题提供了更好的解决方案,但总的来说,您应该使用我的解决方案遍历文件中的行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.