如何使用 while 循环从 python 搜索 txt 文件

How to search txt file from python using while loop

我有这个代码:

b = str(raw_input('please enter a book '))
searchfile = open("txt.txt", "r")
for line in searchfile:
    if b in line:
        print line
        break
else:
    print 'Please try again'

这适用于我想做的事情,但我想通过在转到 else 语句时重复循环来改进它。我已经通过 while 循环尝试了 运行,但随后显示 'line' is not defined,任何帮助将不胜感激。

试试这个:

searchfile = open("txt.txt", "r")
content = searchfile.readlines()
found = False

while not found:
    b = raw_input('Please enter a book ')
    for line in content:
        if b in line:
            print line
            found = True
            break
    else:
        print 'Please try again'

searchfile.close()

您加载列表中的内容并使用布尔标志来控制您是否已在文件中找到这本书。当你找到它时,你就完成了,可以关闭文件了。

假设您想不断重复搜索直到找到某些东西,您可以将搜索包含在一个由标志变量保护的 while 循环中:

with open("txt.txt") as searchfile:
    found = False
    while not found:
        b=str(raw_input('please enter a book '))
        if b == '':
            break  # allow the search-loop to quit on no input
        for line in searchfile:
            if b in line:
                print line
                found = True
                break
        else:
            print 'Please try again'
            searchfile.seek(0)  # reset file to the beginning for next search