文件太大,內存不足時的讀取問題


#

現在考慮有一個 jsonline 格式的文件 file.txt 大小約為 10K,之前處理文件的
代碼如下所示:

1. def get_lines():
2.   l = []
3.   with open(‘file.txt’,‘rb’) as f:
4.     for eachline in f:
5.       l.append(eachline)
6.   return l
7. if __name__ == ‘__main__’:
8.   for e in get_lines():
9.     process(e) #處理每一行數據
#

現在要處理一個大小為 10G 的文件,但是內存只有 4G,如果在只修改 get_lines 函數而其他代
碼保持不變的情況下,應該如何實現?需要考慮的問題都有哪些?


1. def get_lines(): 2.   l = [] 3.   with open(‘file.txt’,’rb’) as f: 4.     data = f.readlines(60000) 5.   l.append(data) 6.   yield l

 說明 : 內存只有 4G 無法一次性讀入 10G 的文件,需要分批讀入。分批讀入數據要記錄每次讀入數據的位
置。分批每次讀入數據的大小,太小就會在讀取操作上花費過多時間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM