可能性の重複:Pythonで
reading lines 2 at a time2つの行でファイルを反復することはできますか?
私たちはラインでファイルの行を反復処理することができます。しかし、私は2つの行で反復をしたいのですが?
f = open("filename")
for line1, line2 in ?? f ??:
do_stuff(line1, line2)
可能性の重複:Pythonで
reading lines 2 at a time2つの行でファイルを反復することはできますか?
私たちはラインでファイルの行を反復処理することができます。しかし、私は2つの行で反復をしたいのですが?
f = open("filename")
for line1, line2 in ?? f ??:
do_stuff(line1, line2)
のPython 2にizip_longest
命名されましたあなたはこのような何か行うことができます:
with open('myFile.txt') as fh:
for line1 in fh:
line2 = next(fh)
# Code here can use line1 and line2.
をあなたは奇妙持っている場合は、next(fh)
への呼び出しにStopIteration
エラーを監視する必要があるかもしれませんライン。おそらく、その解決策を避けることができるのは、izip_longest
のソリューションです。
f = open("file")
content = f.readlines()
print content[0] #You can choose lines from a list.
print content[1]
これはそれを行うための一つの方法です。これで、for-loopでリストを繰り返し処理し、必要な処理を行うか、または明示的に行を選択することができます。
itertools recipesのgrouper
機能を使用してください。
from itertools import zip_longest
def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return zip_longest(fillvalue=fillvalue, *args)
f = open(filename)
for line1, line2 in grouper(2, f):
print('A:', line1, 'B:', line2)
代わりzip_longest
の使用zip
終了時に奇数ラインを無視します。
zip_longest
機能が
これは、ファイル全体を一度にメモリに読み込みます。それは素晴らしい考えではないかもしれません。 –