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

  • Damien Walters

    Damien Walte

    20 AĞUSTOS 2006
  • How To Cook That

    How To Cook

    16 NİSAN 2011
  • Tutorials Junction

    Tutorials Ju

    1 Ocak 2014