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

  • buttheadgsxr1000

    buttheadgsxr

    24 Ocak 2008
  • Photoshop Tutorials

    Photoshop Tu

    22 HAZİRAN 2011
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012