小記憶體讀取大資料
阿新 • • 發佈:2018-12-07
問題:4G 記憶體怎麼讀取一個 5G 的資料?
方法一:
可以通過生成器,分多次讀取,每次讀取數量相對少的資料(比如 500MB)進行處理,處理結束後再讀取後面的 500MB 的資料。
def get_lines_1(): l = [] with open("3.1_file.txt", "r") as f: for eachline in f: l.append(eachline) return l def get_lines_2(): with open("3.1_file.txt", "r") as f: data = f.readline() yield data return data if __name__ == '__main__': for e in get_lines_1(): print(e) # 處理每一行資料 print("*" * 50) print(get_lines_2()) print("*" * 50) for e in get_lines_2(): print(e) # 處理每一行資料 print("over")
方法二:
可以通過 linux 命令 split 切割成小檔案,然後再對資料進行處理,此方法效率比較高。可以按照行 數切割,可以按照檔案大小切割。
https://blog.csdn.net/apollo_miracle/article/details/84143921