我只是想知道我是否可以编写一个简单的脚本来搜索用户输入的不同字符串。假设我想第一次搜索单词“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)`
这样做是第一次有效,而不是第二次。在输出之后我被提示输入另一个水果但是没有显示发现水果的所有行,而是仅提示输入水果的另一个请求。
答案 0 :(得分:3)
假设您在帖子的代码段上面有一些类似f = open('BigTextFileFullOfFruit.txt', 'r')
的行:
您只能在文件上迭代一次。您必须再次致电f.seek(0)
重新审核。
答案 1 :(得分:0)
这是因为f
是一个迭代器,它不能被多次使用。在此之后它已经筋疲力尽,不会再屈服了。
要解决此问题,您可以seek
开始重新迭代或保存list
中的内容以供重复使用。
答案 2 :(得分:0)
# 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()