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