itertools 不迭代 tsv 文件行号
itertools not iterating for tsv files line number
我有一个包含 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
我做错了什么?
您拥有的代码正在尝试读取文件两次。计算完行数后,文件指针位于文件末尾。通过添加 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
我有一个包含 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
我做错了什么?
您拥有的代码正在尝试读取文件两次。计算完行数后,文件指针位于文件末尾。通过添加 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