8

Python csvリーダーで特定の範囲の行をループする方法は?

次のコードは、すべての行をループします。

with open(trainFile, 'rt') as csvfile:
    spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
    for row in spamreader:
        print (', '.join(row))

指定された(iからjへ)からのみループしたい。

4

3 に答える 3

9

使用できます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))
于 2013-09-26T14:50:04.990 に答える
2

を使用isliceします。例:

rows_1_to_50 = itertools.islice(spamreader, 0, 50)
for row in rows_1_to_50:
    pass
于 2013-09-26T14:49:55.297 に答える