1. 包包就是一个文件夹. py2中包内必须要有一个__init__.py文件, 在python3中可以省略,但是最好都保留.__init__.py 当我们导入一个包的时候,默认执行这个包内的__init__.pyif 条件:语句块一条语句 > 语句块 > 代码块(函数,类) > py文件(模块) > 包
2. 相对导入和绝对导入相对导入: 相对于当前模块所在的包. 使用的时候必须在包外面启动绝对导入: 根据包的根目录去导入内容全部都依赖于 sys.path3. 使用包要注意的东西尽量在包的外面启动程序.
import os
def chakan():f = open("emp.db",mode="r",encoding="utf-8")print("工号\t姓名\t生日\t薪水")for line in f:d = eval(line.strip())print("%s\t%s\t%s\t%s" % (d['id'], d['name'], d['birthday'], d['salary']))print("员工信息显示完毕")f.close()def tianjia():f = open("emp.db",mode="a",encoding="utf-8")id = input("请输入工号:")name = input("请输入名字:")birthday = input("请输入生日:")salary = input("请输入员工的薪水:")dic ={"id":id,"name":name,"birthday":birthday,"salary":salary}f.write(str(dic)+"\n")print("保存成功")f.close()def xiugai():chakan()f = open("emp.db", mode="r", encoding="utf-8")id = input("请输入你要修改的工号:")for line in f:d = eval(line.strip())if d["id"] == id:breakelse:print("查无此人")returnf.close()salary = input("请输入该员工的工资:")with open("emp.db",mode="r",encoding="utf-8")as f1, \open("emp_副本.db",mode="w",encoding="utf-8")as f2:for line in f1:d = eval(line.strip())if d["id"] ==id:d["salary"] = salaryf2.write(str(d)+"\n")print("修改成功")os.remove("emp.db")os.rename("emp_副本.db","emp.db")def shanchu():chakan()id =input("请输入要删除的员工的工号:")with open("emp.db", mode="r", encoding="utf-8") as f1, \open("emp.db_副本", mode="w", encoding="utf-8") as f2:for line in f1:d = eval(line.strip())if d['id'] == id:continuef2.write(str(d) + "\n")os.remove("emp.db")os.rename("emp.db_副本", "emp.db")menu = ("查看员?信息","添加员?信息", "修改员?信息", "删除员?信息", "退出")
while 1:for i in range(len(menu)):print(i+1,menu[i])num = input("请输入你要选择的数字:")if num == "1":chakan()elif num == "2":tianjia()elif num =="3":xiugai()elif num =="4":shanchu()elif num =="5":print("系统退出")exit()else:print("请重新输入")