簡體   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