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

  • Blue Lightning TV

    Blue Lightni

    9 EKİM 2011
  • Press Start

    Press Start

    4 HAZİRAN 2006
  • USI Events

    USI Events

    6 AĞUSTOS 2013