SORU
6 ŞUBAT 2009, Cuma


Python Büyük Dosya Okuma için tembel Yöntem?

Çok büyük bir dosya 4 GB var ve okumaya çalıştığım zaman Bilgisayarım kilitleniyor. Parça parça okumak istiyorum ve işlendikten sonra her parça başka bir dosya içine işlenmiş parça deposu ve bir sonraki parça okumak.

yield bu parçalar için herhangi bir yöntem var mı ?

Bir sahip olmak isterdimtembel yöntemi.

CEVAP
6 ŞUBAT 2009, Cuma


Tembel bir işlevi yazmak için, sadece yield kullanın:

def read_in_chunks(file_object, chunk_size=1024):
    """Lazy function (generator) to read a file piece by piece.
    Default chunk size: 1k."""
    while True:
        data = file_object.read(chunk_size)
        if not data:
            break
        yield data


f = open('really_big_file.dat')
for piece in read_in_chunks(f):
    process_data(piece)

< / ^ hr .

Başka bir seçenek iter ve bir yardımcı işlevi kullanmak olacaktır:

f = open('really_big_file.dat')
def read1k():
    return f.read(1024)

for piece in iter(read1k, ''):
    process_data(piece)

< / ^ hr .

Eğer sıra tabanlı ise, dosya nesne zaten hatlarının tembel bir jeneratör

for line in open('really_big_file.dat'):
    process_data(line)

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • echifitness

    echifitness

    9 Kasım 2008
  • Plugable

    Plugable

    19 Mayıs 2010
  • TouchePro

    TouchePro

    27 EYLÜL 2007