繁体   English   中英

根据现有代码创建循环

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM