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

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • MrExcite96

    MrExcite96

    17 ŞUBAT 2011
  • Numberphile

    Numberphile

    15 EYLÜL 2011