2010-11-16 58 views

cevap

4

Bu açıklanmıştır:

ikinci argüman olmadan, o yineleme protokolü ( iter() yöntemi) destekleyen bir koleksiyon nesnesi olmak, ya da gerekir dizi protokolünü (0'dan başlayan tamsayı argümanları ile getitem() yöntemini desteklemelidir). Bu protokollerden herhangi birini desteklemiyorsa, TypeError kaldırılır.

Çözüm boş bir dize nöbetçi sağlamaktır.

with open("mydata.txt") as fp: 
    for line in iter(fp.readline, ''): 
     print line 
+1

+1: Yine de * aptal * kelimesini kullanmazdım. :) BTW, eğer kendi probleminizi çözerseniz, yine de soldaki kene kullanarak doğru cevabı (kendi) kabul etmeniz önerilir. –

+0

Bunu kimin kandığı? Lütfen açıkla. –

+0

Space_C0wb0y, Denedim: "Kendi cevabınızı 2 gün içinde kabul edebilirsiniz". –

-2

Düşündüğüm tek şey, bir dosyayı denilen mydata.txt yok ya da yanlış yerde olmasıdır. Ben salağım ve okuyamaz çünkü

+0

: çizgi ile bir dosya satır okumak için basitçe yazabilirsiniz . –

2

Python file nesneler dolayısıyla açıkça iter() aramaya gerek yoktur, tekrarlanabilir olduğundan. Hata 2. hatta değil, 1. hatta ve açık değil değil, değil iterable olduğunu söylüyor - Açıkçası zaten dosyayı açmak için yönetilen

with open("mydata.txt") as fp: 
    for line in fp: 
     print line 
+0

Bu, OP sorununun çözümü değildir. –

+0

Space_C0wb0y, gerçek sorumun çözümü olmasa da, şu andan itibaren, Tendayi sayesinde muhtemelen iter + readline kombinasyonunu asla kullanamayacağım :) –

İlgili konular