Python:在文本文件中搜索字符串并显示匹配行
我现在有一个程序,它允许用户从一个类别中进行选择(从文件中提取)。然后它将从该文本文件中打印大学或个人 我接下来要做的是让用户从该文件中搜索一个特定的字符串,它将显示具有匹配字符串的大学和个人。它可以是该文件中的整个单词或字符串的一部分 我需要帮助搜索给定字符串或字符串的一部分,并显示匹配的类别(大学和人) 例如: 搜索:ohn 输出: 大学:加州大学洛杉矶分校名称:JohnKelly 大学:孟菲斯大学名称:泰勒Johnson 这是我当前的文本文件:Python:在文本文件中搜索字符串并显示匹配行,python,python-3.x,list,search,Python,Python 3.x,List,Search,我现在有一个程序,它允许用户从一个类别中进行选择(从文件中提取)。然后它将从该文本文件中打印大学或个人 我接下来要做的是让用户从该文件中搜索一个特定的字符串,它将显示具有匹配字符串的大学和个人。它可以是该文件中的整个单词或字符串的一部分 我需要帮助搜索给定字符串或字符串的一部分,并显示匹配的类别(大学和人) 例如: 搜索:ohn 输出: 大学:加州大学洛杉矶分校名称:JohnKelly 大学:孟菲斯大学名称:泰勒Johnson 这是我当前的文本文件: "UniversityName","Cont
"UniversityName","ContactName"
"UCLA","John Kelly"
"UofFlorida","Mary Elizabeth"
"U of Memphis","Taylor Johnson"
"Harvard","Robert Fax"
到目前为止,我的代码就是这样做的:
def load_data(file_name):
university_data=[]
with open(file_name,'r') as rd_file:
for line in rd_file.readlines():
line=line.strip().split(',')
T = line[0],line[1]
university_data.append(T)
return university_data
def main():
filename='List.txt'
university_data = load_data(filename)
print('[1] University\n[2] Contact Name\n[3] Exit\n[4] Search')
while True:
choice=input('Enter choice 1/2/3? ')
if choice=='1':
for university in university_data:
print(university[0])
elif choice=='2':
for university in university_data:
print(university[1])
elif choice =='3':
print('Thank You')
break
elif choice =='4':
print("Search Section Here")
else:
print('Invalid selection')
main()
根据您的数据:
university_data = [["UniversityName","ContactName"],
["UCLA","John Kelly"],
["UofFlorida","Mary Elizabeth"],
["U of Memphis","Taylor Johnson"],
["Harvard","Robert Fax"]]
使用str.join
:
def search(key, data):
for l in data:
if key in ''.join(l):
print('University: %s Name: %s' % (l[0], l[1]))
search('ohn', university_data)
# University: UCLA Name: John Kelly
# University: U of Memphis Name: Taylor Johnson
与前面的答案类似,如果要忽略搜索词的大小写,可以在
search
函数中添加lower()
def search(key, mydata):
for l in mydata:
if key in (''.join(l)).lower():
print('University: %s Name: %s' % (l[0], l[1]))
重新发明
grep
?你的问题是什么?我需要帮助的是搜索给定的字符串或字符串的一部分,并显示匹配的记录和标记的字段。@smokingpenguin如果任何答案解决了你的问题,请将其标记为已接受。univ
在你的代码中是大学数据
。我想它们应该是类似的格式。编辑:现在完全有道理了。谢谢大家!@吸烟企鹅很乐意帮忙:)