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

  • Droid Life

    Droid Life

    17 Kasım 2009
  • Hey Nadine

    Hey Nadine

    24 Kasım 2006
  • Kat Krazy

    Kat Krazy

    12 Kasım 2010