Saya perlu membaca file besar, baris demi baris. Katakanlah file tersebut memiliki lebih dari 5GB dan saya perlu membaca setiap baris, tetapi jelas saya tidak ingin menggunakannya readlines()karena akan membuat daftar yang sangat besar dalam memori.
Bagaimana kode di bawah ini berfungsi untuk kasus ini? Apakah dengan xreadlinessendirinya membaca satu per satu ke dalam memori? Apakah ekspresi generator diperlukan?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
Plus, apa yang bisa saya lakukan untuk membaca ini dalam urutan terbalik, seperti tailperintah Linux ?
Saya menemukan:
http://code.google.com/p/pytailer/
dan
" kepala python, ekor dan terbelakang dibaca oleh baris file teks "
Keduanya bekerja dengan sangat baik!