逐行讀取文本時哪一種方法更好?

方法一:python

with open("test_read.txt") as f:
    for i, v in enumerate(f):
	print i, ":", v
	print "-" * 50

方法二:code

with open("test_read.txt") as f:
    for i, v in enumerate(f.readlines()):
	print i, ":", v
	print "-" * 50

說明: 一、for i, v in enumerate(f) 語句將 file 對象轉換成 iterable object ,既然是可迭代對象,一次只加載一個 item ,解釋器不會將全部 items 放進內存,所以節省了資源。在 python 2.3 之前,要用 f.xreadlines()方法讀大文件,它和 xrange 的做用同樣,都是處理 iter(object),但在 2.3 後,官方明確用 for line in f 讀取大文件。對象

二、for i, v in enumerate(f.readlines()) 語句和第一個相似,可是它先執行 f.readlines(),直接把 file 對象中全部的 line items 列表存進內存,在它們之上進行循環讀取。 所以,讀取大文件時用第一個語句,通常小文件這兩個均可以內存

相關文章
相關標籤/搜索