我有一个包含100000行数据的tsv。当我放n_rating=55555
时,它进入下面的代码的for循环。但是当我使用文件的行长时,它不会进入循环,而不是一次。
with open("u.data") as tsv1:
n=sum([1 for _ in tsv1 ])
print n
for line in itertools.islice( csv.reader(tsv1, dialect="excel-tab"),0, int(0.8*n)):
print "iterating loop" #does not print when n is line size
#prints when n
我做错了什么?
答案 0 :(得分:1)
您拥有的代码是尝试两次读取文件。计算行数后,文件指针位于文件的末尾。通过添加seek(0)
,您可以再次移动到文件的开头。
with open("u.data") as tsv1:
n = sum([1 for _ in tsv1])
print n
tsv1.seek(0)
for line in itertools.islice( csv.reader(tsv1, dialect="excel-tab"),0, int(0.8*n)):
print "iterating loop" #does not print when n is line size
#prints when n