![]()
# 只实现作业要求的查询功能
# 增加,删除,修改功能为选做题
# 创建员工信息表
# 用户输入查询命令
# 分析用户输入的命令,从命令中提取需要查询的关键字
# 根据关键字来查询内容并输出
staff_table=r'F:\python文件\day21生成器\员工信息表.txt'
def select(cmd1): #查询功能
with open(staff_table) as f:
path=f.readlines() #读出多行赋值给path
staff_l=[{
'staff_id': i[0],
'name': i[1],
'age': i[2], #以列表套字典的形式遍历员工信息
'phone': i[3],
'dept': i[4],
'enroll_date': i[5]
} for i in[line.strip().split(',') for line in path]]
#把列表的元素连城字符串并分隔出select与from之间的内容赋值给变量
kebianchang=''.join(cmd1).split('select')[1].split('from')[0].split(',')
#把用户输入的命令后三个元素赋值给变量
xiangmu=cmd1[-3]
fuhao=cmd1[-2]
tiaojian=cmd1[-1]
#定义变量用于计数
count=0
for i in staff_l:
if fuhao == '=': #判断用户输入命令的几种情况
if i[xiangmu] == tiaojian:
print_content(kebianchang, i)
count+=1
elif fuhao == '>':
if i[xiangmu] > tiaojian:
print_content(kebianchang, i)
count += 1
elif fuhao == '<':
if i[xiangmu] < tiaojian:
print_content(kebianchang, i)
count += 1
elif fuhao == 'like':
if tiaojian in i[xiangmu].split('-'):
print_content(kebianchang, i)
count += 1
else:
print('输入错误')
print('查询到%s条信息'%count)
def print_content(kebianchang,i):
# 输出用户输入的需求对应的内容
if kebianchang == ['*']:
print([i[k] for k in i])
else:
print([i[k] for k in kebianchang])
while True:
cmd=input('cmd: ').strip()
cmd1=cmd.split()
select(cmd1)