如何使用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)循环.
你可以使用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)