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

  • GavinMichaelBooth

    GavinMichael

    26 AĞUSTOS 2006
  • How To Cook That

    How To Cook

    16 NİSAN 2011
  • ThePhestor

    ThePhestor

    22 Mart 2011