Python==员工信息查询表
#!/bin/env python#coding=utf-8def query():##定义函数dic = {}##定义一个空字典f = file('stu_info.txt')##打开员工信息表for i in f.xreadlines():num
·
#!/bin/env python
#coding=utf-8
def query(): ##定义函数
dic = {} ##定义一个空字典
f = file('stu_info.txt') ##打开员工信息表
for i in f.xreadlines():
number,name,mail,bumen,Admin,phone=i.split() ##将表内每一列的内容注释
list1=[name,mail,bumen,Admin,phone] ##除员工序号外的其余信息放入一个列表
dic.setdefault(number,list1) ##将员工序号作为key,对应的列表为value放入字典里
f.close() ##关闭f
while True:
stu_id = raw_input('\033[32;1mPlease in put stu_id:\033[0m\n') ##输入查询的关键词(绿色字体)
if len(stu_id) < 3: ##查询长度低于3时重新输入
print 'At least 3 length for input stu_id.'
continue
match_counter = 0 ##查询结果默认为0
for k,v in dic.items():
index = k.find(stu_id) ##find方法,查找关键词是否存在于key中,如果存在,index为第几位开始。如果不存在则为index为-1.
if index != -1:
print k[:index]+'\033[32;1m%s\033[0m' %stu_id + k[index + len(stu_id):],v
##输出查询的员工信息,关键字部分绿色字体
match_counter +=1 ##查询的结果加1
else: ##如果查询的关键字在value里,不在key里
str_v = '\t'.join(v) ##将value从列表里取出,以tab分隔
index = str_v.find(stu_id) ##通过find查询
if index != -1 : ## 如果存在
print k, str_v[:index]+'\033[32;1m%s\033[0m' %stu_id +str_v[index + len(stu_id): ] ##输出对应的key,以及所在的value。同样关键字部分用绿色显示
match_counter += 1 ##查询结果加一
print "Matched \033[31;1m%s\033[0m records!" %match_counter ##打印总共有几个查询结果
if __name__ == '__main__': ##如果name为main则执行。这条命令是该函数只能用作脚本使用,import时,不会执行query()
query()
更多推荐
已为社区贡献11条内容
所有评论(0)