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

  • BachelorsPadTv

    BachelorsPad

    17 Ocak 2012
  • Gan Eden Productions

    Gan Eden Pro

    11 HAZİRAN 2011
  • InfinityWard

    InfinityWard

    19 EYLÜL 2006