Python csvリーダーで特定の範囲の行をループする方法は?
次のコードは、すべての行をループします。
with open(trainFile, 'rt') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
print (', '.join(row))
指定された(iからjへ)からのみループしたい。
使用できますitertools.islice
:
import itertools
i, j = 10, 20
with open(trainFile, 'rt') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in itertools.islice(spamreader, i, j+1):
print (', '.join(row))
代替 ( csv.reader は iterable を受け入れるため、次のコードが可能です):
注: CSV 行に改行が含まれていない場合にのみ機能します。
import itertools
i, j = 10, 20
with open(trainFile, 'rt') as csvfile:
spamreader = csv.reader(itertools.islice(csvfile, i, j+1),
delimiter=' ', quotechar='|')
for row in spamreader:
print (', '.join(row))
を使用islice
します。例:
rows_1_to_50 = itertools.islice(spamreader, 0, 50)
for row in rows_1_to_50:
pass