xreadlinesとfor-loopingの違い

Python 2.7でファイルオブジェクトを持つ:

f = open('my_file', 'r')

ファイルをループさせる方法(最も一般的な方法)と xreadlines()関数を使用する方法の違いは次のとおりです。

for line in f:
    # Do something with line

そして

for line in f.xreadlines():
    # Do something with line

つまり、すべてのファイルの内容をメモリに読み込む readlines()または read()関数とは対照的に、どちらのオプションもジェネレータを定義しています。

Is there some performance or file-hそしてling improvment in any of them? Or they are just to equivalent ways of doing the same thing?

11
xreadlines が最初に来ました。一般的に、Pythonはリストベースの関数( range items zip )、イテレータの対応( xrange、 > iteritems izip`)、元の関数をイテレータを返すように変更しました。これは、これらの変更の末尾です。
追加された 著者 Katriel,
また、 for _ something は、裏で iter(something)を呼び出すことにも注意してください。
追加された 著者 Katriel,

1 答え

From docs.python.org

file.xreadlines()
This method returns the same thing as iter(f).

New in version 2.1.

Deprecated since version 2.3: Use for line in file instead.

...ファイルを操作するときは with キーワードを使用する方が良いでしょう。再度docsページを見てください。

with open('my_file', 'r') as f:
    for line in f:
        # do stuff
20
追加された
それは彼らが完全に正確に同じであることを意味します!
追加された 著者 juliomalegria,