如何使用Python csv阅读器遍历特定的行范围?

tuc*_*son 8 python csv

如何使用Python csv阅读器遍历特定范围的行?

以下代码循环遍历所有行:

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

我希望只从给定(i到j)循环.

fal*_*tru 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))
Run Code Online (Sandbox Code Playgroud)

替代方案(以下代码是可能的,因为csv.reader接受可迭代):

注意:仅当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))
Run Code Online (Sandbox Code Playgroud)