簡體   English   中英

輸入文件過大導致內存錯誤

[英]Memory error due to the huge input file size

當我使用以下代碼讀取文件時:

lines=file("data.txt").read().split("\n")

我有以下錯誤

MemoryError

文件大小是

ls -l
-rw-r--r-- 1 charlie charlie 1258467201 Sep 26 12:57 data.txt

顯然,文件太大,無法一次全部讀入內存。

為什么不使用:

with open("data.txt") as myfile:
    for line in myfile:
        do_something(line.rstrip("\n"))

或者,如果您未使用Python 2.6和更高版本,則:

myfile = open("data.txt")
for line in myfile:
    do_something(line.rstrip("\n"))

在這兩種情況下,您都將獲得一個迭代器,該迭代器可以像對待字符串列表一樣對待。

編輯:由於您將整個文件讀取為一個大字符串然后在換行符上進行拆分的方式將刪除過程中的換行符,因此我在示例中添加了一個.rstrip("\\n")以便更好地模擬結果。

使用此代碼逐行讀取文件:

for line in open('data.txt'):
    # work with line

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM