0
我想从一个文件中的一些样品行了,这是我的方法For循环下With语句工作不正常
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
我不t知道为什么for循环中的第一个With语句不工作,如果我删除
lc = sum(1 for x in f)
它再次工作。
非常感谢!
哇,真的,是我不好,我应该详细了解如何与声明。非常感谢你 – pthphap
很高兴帮助。也请阅读:[我应该怎么做,当有人回答我的问题?](https://stackoverflow.com/help/someone-answers) – AKS
@QSnake这不是'with'属性,但'开放'-ed文件对象 – Aprillion