我试图从一个文件中获取一些样本行,这是我的方法
import gzip, random
random_set = []
with gzip.open('/home/qsnake/Downloads/bigfile.txt.gz') as f:
lc = sum(1 for x in f)
random_set += random.sample(xrange(lc), 3)
for i, x in enumerate(f):
if i in random_set:
print "First loop", str(i)
break
with gzip.open('/home/qsnake/Downloads/biggfile.txt.gz') as f:
for i, x in enumerate(f):
if i in random_set:
print "Second loop", str(i)
break
这是结果
Second loop 4
我不知道为什么第一个With语句中的for循环不起作用,如果我删除
lc = sum(1 for x in f)
它又起作用了
多谢
当代码中有以下行时,您已经读取了一次文件:
现在,当您再次尝试
enumerate
该文件时,指针位于该文件的末尾,因此无法读取任何内容如果要在相同的with条件下从start重新读取文件,可以将指针设置为
enumerate
之前的0:相关问题 更多 >
编程相关推荐