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

  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • Gavin Hoey

    Gavin Hoey

    21 Aralık 2007
  • NikkoNantone

    NikkoNantone

    21 Kasım 2011