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