【发布时间】:2016-11-27 19:55:44
【问题描述】:
我有一个名为 text.txt 的文件,其中包含以下数据:
My
Name
Is
Lorem
Ipsum
我的python代码:
with open("text.txt") as f:
for i in xrange(5):
print "Is\n" in f
输出:
True
False
False
False
False
为什么只有 i=0 时才输出 True?
如何才能使所有迭代都为 True?我不想将文件的内容存储在任何地方!
【问题讨论】:
-
您不是在检查行中的成员资格,而是在文件对象(可迭代的行)中检查成员资格。获得该输出的原因是您的行之间有
"Is\n",这就是它第一次返回True的原因,但是由于文件对象是像对象一样的迭代器,一旦它在第一次成员资格检查中消耗文件对象,它就会返回False其余的检查。