readlinesメソッドはPython3ではイテレータを返さず、リストを返します
Help on built-in function readlines:
readlines(...)
Return a list of lines from the stream.
確認するには、インタラクティブセッションから呼び出すだけです。イテレータではなくリストが返されます。
>>> type(f.readlines())
<class 'list'>
この場合、Pythonへの飛び込みは間違っているようです。
xreadlines
ファイルオブジェクトが独自のイテレータになったPython2.3以降、非推奨になりました。xreadlines
を使用する代わりにと同じ効率を得る方法
for line in f.xreadlines():
単純に使用する必要があります
for line in f:
readlines
これにより、必要なイテレーターが得られ、Python 3でその動作を変更する必要がなかった理由を説明するのに役立ちます-line in f
イディオムが反復アプローチを提供し、長い間廃止されたものxreadlines
が削除された状態で、完全なリストを返すことができます完全に。