Tôi cần đọc một tập tin lớn, từng dòng một. Hãy nói rằng tập tin có hơn 5GB và tôi cần đọc từng dòng, nhưng rõ ràng tôi không muốn sử dụng readlines()
vì nó sẽ tạo ra một danh sách rất lớn trong bộ nhớ.
Làm thế nào mã dưới đây sẽ làm việc cho trường hợp này? Có phải xreadlines
chính nó đang đọc từng cái một vào bộ nhớ? Là biểu thức máy phát điện cần thiết?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
Ngoài ra, tôi có thể làm gì để đọc thứ này theo thứ tự ngược lại, giống như tail
lệnh Linux ?
Tôi đã tìm thấy:
http://code.google.com.vn/p/pytailer/
và
" Đầu trăn, đuôi và đọc ngược bằng các dòng của tệp văn bản "
Cả hai đều làm việc rất tốt!