基本要求:
用戶可以模糊查詢員工信息顯示匹配了多少條,匹配字符需要高亮顯示
代碼:
- #!/usr/env python
- #coding:utf-8
- import time
- def BreakFlag(): #用於設置標志位
- while True:
- Break_Flag=raw_input('\t\t\t是否繼續?(y/n):')
- if Break_Flag=='y' or Break_Flag=='n':
- return Break_Flag
- else:
- print '''''\t\t輸入錯誤,請重新輸入!'''
- Info_File=open(r'information.txt','r') #只讀方式打開員工信息表文件
- Employee_Info=Info_File.readlines() #生成一個員工信息列表,列表中元素為員工信息字符串
- Info_File.close() #關閉員工信息表文件
- Break_Flag=''
- print '''''\n\t\t\t\t\033[34;1m您好,歡迎來到員工信息查詢系統!\033[0m\n'''
- while Break_Flag!='n':
- while True:
- Search_Info=raw_input('''''\n\t\t\t請輸入您需要查詢的信息:''')
- if len(Search_Info)>2: #判斷輸入字符長度,小於3個字符,則需要重新輸入
- break
- else:
- print '''''\n\t\t\t\033[31;1m您輸入信息太少,請重新輸入!\033[0m\n'''
- count_number=0
- Search_Info_List=[]
- for i in Employee_Info:
- if i.count(Search_Info)>0:
- #將搜索到的字符串進行替換,並追加到Search_Info_List列表中
- Search_Info_List.append(i.replace(Search_Info,'''''\033[42;31;1m%s\033[0m''' % Search_Info))
- count_number+=1 #一條記錄匹配成功
- #count_number+=i.count(Search_Info)#統計每次搜尋到的字符串的個數,並進行累加
- if count_number>0:
- #若搜尋到字符串,將統計到的字符串總個數和包含字符串的列表進行屏幕打印
- print '''''\n\t\t\t共查詢到:\033[31;1m %s \033[0m條信息!\n''' % count_number
- for i in Search_Info_List:
- print i
- else:
- print '''''\n\t\t\t\033[31;1m沒有您查找的信息!\033[0m\n'''
- Break_Flag=BreakFlag()
- for i in range(3):
- print '''''\n\t\t\t\033[31;5m謝謝使用員工信息查詢系統,%s秒后,退出系統\033[0m''' % (3-i)
- time.sleep(1)
- exit('\n\t\t\t\t您已經退出員工查詢系統!')
- #import sys
- #sys.exit('\n\t\t\t\t您已經退出員工查詢系統!')
song@ubuntu:~$ more information.txt
name:marry age:23 sex:man job:IT
name:song dada age:23 sex:man job:HR
name:zhang sanfeng age:23 sex:man job:IT
name:zhang wuji age:23 sex:man job:accountant
name:ling huchong age:23 sex:man job:IT
name:xiaoping age:23 sex:man job:manager
name:li yuanfang age:23 sex:man job:IT
name:feng feng age:23 sex:man job:boss
運行程序,示例如下: