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

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • Harvest: Greg Laurie

    Harvest: Gre

    6 HAZİRAN 2006
  • technodromeband's channel

    technodromeb

    28 NİSAN 2011