SORU
25 HAZİRAN 2011, CUMARTESİ


Python ile büyük metin dosyaları, hafıza yükleme yapmadan satır satır okuyun

Büyük bir dosya, satır satır okumak istiyorum. Dosya 5 GB daha var ve her satırı okumak istiyorum diyelim, ama belli ki hafızasında çok büyük bir listesini oluşturur çünkü readlines() kullanmak istemiyorum.

Nasıl bu dava için çalışmak aşağıdaki kodu olacak? xreadlines kendini belleğe tek tek okuyor mu? Jeneratör ifadesi gereklidir?

f = (line for line in open("log.txt").xreadlines())  # how much is loaded in memory?

f.next()  

Artı, ben sadece Linux olarak ters sırada bunu okur için ne yapabilirim tail komut?

Buldum:

http://code.google.com/p/pytailer/

ve

"python head, tail and backward read by lines of a text file"

Her ikisi de çok iyi çalıştı! Teşekkürler

CEVAP
25 HAZİRAN 2011, CUMARTESİ


Keith, az ve öz olsa da, dosyayı kapatmak değil, çünkü bu cevap veriliraçıkça

with open("log.txt") as infile:
    for line in infile:
        do_something_with(line)

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ionized Digital Air Studios

    Ionized Digi

    20 HAZİRAN 2009
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010
  • Thom Hall

    Thom Hall

    24 Kasım 2006