我只是想知道是否可以制作一个简单的脚本,在用户输入时搜索不同的字符串。假设我想第一次搜索单词"apple",第二次搜索"orange",并显示苹果和桔子所在的所有行。我希望第一个独立于第二个搜索。
`string = "start"
while string != "end":
string = input('Enter fruit: ')
print("looking for ",string )
for line in f:
if "Started" and string in line:
print("debug")
print(line)`
这种方法第一次有效,第二次无效。输出后,我会被提示输入另一个水果,但它没有显示找到水果的所有行,而是提示另一个输入水果的请求。
假设您发布的代码段上方有类似f = open('BigTextFileFullOfFruit.txt', 'r')
的行:在一个文件上只能迭代一次。你必须打电话给f.seek(0)
再检查一遍。
这是因为f
是一个迭代器,不能多次使用。在那之后,它就筋疲力尽,再也不会屈服了
为了绕过这一点,您可以从seek
开始重新迭代或将内容保存在list
中以供重用。
# Put this inside your outermost loop
string = raw_input("Enter string: ")
f = fp.readline()
while f:
if f.find(string) >= 0 and "Started":
print(f, end=' ')
f = fp.readline()