如何读取比机器内存大的文件(内存4G,文件 8G,读取大文件) ?
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                如何读取比机器内存大的文件(内存4G,文件 8G,读取大文件) ?
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                我們假設(shè)數(shù)據(jù)可以一行一行地處理,并且數(shù)據(jù)之間的沒(méi)有相關(guān)性,那么我們有兩種方法讀取該文件。
1. 使用生成器 yield 逐行讀取到內(nèi)存
def read_file(filename):with open(filename, 'r', encoding='utf-8') as f:for line in f:yield lineline_content = read_file(filename="/data.txt")
for line in line_content:print line
逐行讀入,頻繁的 IO 操作會(huì)導(dǎo)致處理效率很低。
2. 使用 pandas 的 read_csv 函數(shù)
pandas 模塊 read_csv 函數(shù) chunksize 參數(shù)可以設(shè)置每次讀取的行數(shù)。
import pandas as pddef read_file(filename, sep=',', chunksize=5):reader = pd.read_csv(filename, sep=sep, chunksize=chunksize)while True:try:yield reader.get_chunk()except StopIteration:breakif __name__ == '__main__':g = read_file('/data.txt',sep="::")for c in g:print(c)
總結(jié)
以上是生活随笔為你收集整理的如何读取比机器内存大的文件(内存4G,文件 8G,读取大文件) ?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 求崩字开头的成语接龙!
- 下一篇: Python 精选笔试面试习题—类继承、
