SORU
4 Kasım 2011, Cuma


Ne kadar büyük dosya okumak için python satır satır

Tüm dosyaları her yinelemek istiyorum. Bunu yapmanın bir yolu, tüm dosya Okuma, bir listeye kaydederek daha sonra ilgi hat üzerinden geçiyor. Bu yöntem çok fazla bellek kullanır, alternatif arıyorum.

Benim kod şimdiye kadar:

for each_line in fileinput.input(input_file):
    do_something(each_line)

    for each_line_again in fileinput.input(input_file):
        do_something(each_line_again)

Bu kod bir hata iletisi verir yürütülüyor: device active.

Herhangi bir öneriniz var mı?

Amaç çifti-bilge dize benzerlik hesaplamak için, dosya içindeki her satırı için bir anlam, her satırı ile Levenshtein mesafe hesaplamak istiyorum. EDİT:

CEVAP
4 Kasım 2011, Cuma


Kimse tam olarak Pythonic bir dosya okumak için doğru yol verdi. Aşağıdaki:

with open(...) as f:
    for line in f:
        <do something with line>

with deyim ve dosya, durum iç bloğu içinde oluşturulur dahil olmak üzere açılış ve kapanış işler. for line in f büyük dosyaları hakkında endişelenmenize gerek yok bu yüzden dosyayı otomatik olarak tamponlanmış IO ve bellek yönetimi kullanan bir iterable, f nesne davranır.

Bir ... ve tercihen sadece bunu yapmak için bir ... belirgin bir yolu olmalı.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FD2097

    FD2097

    21 HAZİRAN 2009
  • Philip DeFranco

    Philip DeFra

    16 EYLÜL 2006
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010