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

  • BroadCity

    BroadCity

    10 ŞUBAT 2010
  • Triune Films

    Triune Films

    9 ŞUBAT 2006
  • Videojug

    Videojug

    25 EKİM 2006