a = True def out(): def wapper(f): def inner(): global a if a: flag3=True while flag3: a = input("用户名:") b = input("密码:") if a=="王镇" and b=="大脸": a=False f() break else: print("用户名或,密码错误") else:f() return inner return wapper # # # 增 @out() def func(): l = [] with open ("员工信息","r",encoding="utf-8")as f: for i in f: i=i.strip().split(",") l.append(i[0]) a1=max(l) # print(i) flag=True while flag: a = input("输入id,或Q\q推出") if a.upper()=="Q":break if a.isdigit()==False: print("输入数字") continue if eval(a)-eval(a1)==1: b=input("输入name") c = input("输入age") d = input("输入phone") e = input("输入job") with open ("员工信息" ,"a",encoding="utf-8")as f: f.write("%s %s" % (a +"," + b +","+ c+"," + d+"," + e, "\n")) break else:print("序号有误,重新输入") # 删 @out() def func1(): l = [] l1 = [] flag1 = True while flag1: with open("员工信息","r",encoding="utf-8")as f: for i in f: i=i.strip().split(",") l1.append(i[0]) a=input("输入想删除信息的序号,或Q\q退出 ") if a.upper()=="Q": flag1=False break elif a in l1: with open("员工信息", "r", encoding="utf-8")as f: for i in f: i = i.strip().split(",") if a==i[0]: i=",".join(i) print("是否删除",i) choice=input("Y\\N") if choice.upper()=="Y": continue else: i = i.strip().split(",") l.append(i) else:l.append(i) with open("员工信息","w",encoding="utf-8")as f: for i in l: i=",".join(i) f.write("%s%s"%(i,"\n")) # flag1=False break else:print("输入有误,重新输入") # # # 查 @out() def func2(): l2=[] l1=[] flag3 = True while flag3: with open("员工信息", "r", encoding="utf-8")as f: for i in f: l2.append(i) i=i.strip().split(",") l1.append(i[0]) a=input("输入想查询信息的序号,或Q\q退出 ") if a.upper()=="Q":break for l in l1: if a==l: k=(l2[eval(l)-1]).strip() print(k) break else: print("输入有误") #改 @out() def func3(): l=[] a=input("要修改的序号") with open("员工信息", "r", encoding="utf-8")as f: for i in f: i = i.strip().split(",") if a != i[0]: l.append(i) else: i=",".join(i) print(i) b=input("要修改的name") c = input("要修改的age") d = input("要修改的phone") e = input("要修改的work") a=a+","+b+","+c+","+d+","+e a = a.strip().split(",") l.append(a) # print(l) with open("员工信息", "w", encoding="utf-8")as f: for i in l: i = ",".join(i) f.write("%s%s" % (i, "\n")) # func3() l=["增","删","改","查"] print(list(zip(range(1,5),l))) while 1: c =input("输入要进行的操作的序号 Q或q退出") if c.upper()=="Q":break # c=eval(c) if c=="1": func() elif c=="2": func1() elif c=="3": func3() elif c=="4": func2() else:pass
# select name, age where age>22 # select * where job = IT # select * where phone like 133 def open1(a,b): global a2 dic = {"name": 1, "age": 2, "phone": 3, "job": 4} a1 = a.split("where")[1] if b in a1: a2 = a1.split(b) with open("员工信息", encoding="utf-8")as f: for i in f: i = i.strip().split(",") if b=="=": if i[dic[a2[0].strip()]] ==a2[1].strip(): l1 = ",".join(i) print(l1) elif b == "like": if a2[1].strip() in i[dic[a2[0].strip()]]: l1 = ",".join(i) print(l1) elif b == ">": if i[dic[a2[0].strip()]] > a2[1].strip(): l1 = ",".join(i) print(l1) elif b == "<": if i[dic[a2[0].strip()]] < a2[1].strip(): l1 = ",".join(i) print(l1) def open2(a,b): l = [] dic = {"name": 1, "age": 2, "phone": 3, "job": 4} a1 = a.split("where")[0:1] a2 = a.split("where")[1] # print(type(a1),"\n",type(a2)) a1 = a1[0].strip().split(",") # a1.remove("select") l1 = a1[1:] for p in l1: l.append(p) a3 = a1[0].split(" ") a3.remove("select") l = (l + a3) l.reverse() print(l) # print(a1, "\n", a2,l) if b in a2: a2 = a2.split(b) with open("员工信息", "r", encoding="utf-8")as f: for i in f: i = i.strip().split(",") if b == ">": if i[dic[a2[0].strip()]] > a2[1].strip(): l1=[i[dic[k.strip()]] for k in l] print(l1) elif b =="<": if i[dic[a2[0].strip()]] < a2[1].strip(): l1 = [i[dic[k.strip()]] for k in l] print(l1) elif b == "=": if i[dic[a2[0].strip()]] == a2[1].strip(): l1 = [i[dic[k.strip()]] for k in l] print(l1) elif b == "like": if a2[1].strip() in i[dic[a2[0].strip()]]: l1 = [i[dic[k.strip()]] for k in l] print(l1) def f(): while 1 : a = input(">>>>或Q\\q退出") if a.upper()=="Q":break if "*" in a: if "=" in a: open1(a,"=") elif ">"in a: open1(a,"=") elif "<" in a: open1(a,"<") elif "like" in a: open1(a, "like") elif "*" not in a: if ">" in a: open2(a,">") elif "<" in a: open2(a, "<") elif "=" in a: open2(a, "=") elif "like" in a: open2(a, "like") f()