如何使用 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
我有这个代码:
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