【发布时间】:2017-04-14 04:31:54
【问题描述】:
在我的程序的一部分中,我想将一个排序后的名称列表从一个文本文件传递给一个函数,该函数要求用户输入一个名称,然后指示输入的名称是否在列表中找到.如果找到名字,它的位置(即索引)也会被打印出来。
该文件只有 30 个名称,但是当执行第二个函数时,它会在我输入要搜索的名称后显示:
未找到名称。
未找到名称。
找到名字
未找到名称。
未找到名称。
...等所有 30 个名称。
代码如下:
def main():
infile = open('names.txt', 'r')
line = infile.readline()
while line !='':
line = line.rstrip('\n')
print(line)
line = infile.readline()
print('\nHere are the names sorted:\n')
infile = open("names.txt", 'r')
names = infile.readlines()
names.sort()
for line in names:
line = line.rstrip('\n')
print(line)
line = infile.readline()
search_file(line) # I don't this this is the correct way to
# pass the sorted list of names?
def search_file(line):
search = open('names.txt', 'r')
user_search = input('\nSearch for a name(Last, First): ')
#item_index = line.index(search)
print()
with open('names.txt', 'r') as f:
for line in f:
if user_search in line:
print('name found')#, item_index)
else:
print('name not found.')
此处更新代码: 这次它总是显示“未找到”
def search_file(line):
user_search = input('\nSearch for a name(Last, First): ')
print()
try:
item_index = line.index(user_search)
print(user_search, 'found at index', item_index)
except ValueError:
print('not found.')
【问题讨论】:
标签: python file search text input