创建skill目录,person.py,manage.py,main.py
创建person类
# coding=utf-8
class Person(object):
def __init__(self, name, skill):
self.name = name
self.skill = skill
def __str__(self):
print(f"{self.name}会{self.skill}")
创建manage类:
# coding=utf-8
from skill.person import *
'''
获取用户输入Name和skill信息,保存到skill.data文件中,有增删改查功能,加载文件功能
'''
class Manage(object):
# 定义初始化列表数据
def __init__(self):
self.user_list = []
def run(self):
self.load()
print('*' * 50, '欢迎进入系统', '*' * 50)
while True:
self.show_menu()
user_input = int(input('请输入你要进行得操作:'))
if user_input == 1:
self.add_content()
elif user_input == 2:
self.delete_user()
elif user_input == 3:
self.modify()
elif user_input == 4:
self.search()
elif user_input == 5:
self.save()
# 设置静态方法,定义用户进入界面显示
@staticmethod
def show_menu():
print('1、添加信息\t2、删除信息\t3、修改信息\t4、查询信息\t5、保存操作')
def add_content(self):
name = input('name:')
skill = input('skill:')
person = Person(name, skill)
self.user_list.append(person)
def delete_user(self):
del_name = input('输入要删除的用户名:')
for i in self.user_list:
if del_name == i.name:
self.user_list.remove(i)
break
else:
print('用户不存在')
def modify(self):
user_input = input('输入修改的用户名:')
for i in self.user_list:
if i.name == user_input:
modify_name = input('修改name:')
modify_skill = input('修改skill:')
i.name = modify_name
i.skill = modify_skill
break
else:
print('输入用户不存在')
def search(self):
search_name = input('输入查询得用户名:')
for i in self.user_list:
if search_name == i.name:
print(f'用户名:{i.name},技能:{i.skill}')
break
else:
print('查找用户不存在!')
def save(self):
f = open('skill.data', 'w')
# 将列表分组内得对象转换为字典
new_list = [i.__dict__ for i in self.user_list]
# 将列表转换为字符串进行写入
f.write(str(new_list))
f.close()
def load(self):
# 捕获异常,有文件则读取,没有文件则创建
try:
f = open('skill.data', 'r')
except:
f = open('skill.data', 'w')
else:
# 读取数据
data = f.read()
# 将数据格式转换为列表
new_list = eval(data)
# 将数据遍历将value值存储到对象当中
self.user_list = [Person(i['name'], i['skill']) for i in new_list]
finally:
f.close()
main主程序:
from skill.manage import *
if __name__ == '__main__':
play_manager = Manage()
play_manager.run()
验证功能:
保存为列表嵌套字典格式