如何在不將其加載到內(nèi)存的情況下逐行讀取Python中的大型文本文件?我需要逐行讀一個大文件。假設(shè)該文件的容量超過5GB,我需要讀取每一行,但顯然我不想使用readlines()因為它會在內(nèi)存中創(chuàng)建一個非常大的列表。下面的代碼將如何適用于這種情況?是xreadlines一個地讀進記憶?需要生成器表達式嗎?f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?f.next()另外,我還能做些什么才能像linux那樣,按相反的順序讀取這些內(nèi)容呢?tail指揮部?我發(fā)現(xiàn):http://code.google.com/p/pytailer/和"按文本文件行讀取的Python頭、尾和后讀"兩個人都干得很好!
3 回答

茅侃侃
TA貢獻1842條經(jīng)驗 獲得超21個贊
with open("log.txt") as infile: for line in infile: do_something_with(line)

海綿寶寶撒
TA貢獻1809條經(jīng)驗 獲得超8個贊
for line in open("log.txt"): do_something_with(line)
with open("log.txt") as fileobject: for line in fileobject: do_something_with(line)

哆啦的時光機
TA貢獻1779條經(jīng)驗 獲得超6個贊
fh = open(file_name, 'rt')line = fh.readline()while line: # do stuff with line line = fh.readline()fh.close()
添加回答
舉報
0/150
提交
取消