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

  • krotoflik

    krotoflik

    26 ŞUBAT 2011
  • lane182videos

    lane182video

    6 EKİM 2011
  • pendrop gaming

    pendrop gami

    4 ŞUBAT 2013