使用pickle实现一个管理系统

import pickle
from os import path

datafile = 'person.data'
line = '======================================='
message = '''
=======================================
Welcome bookmark:
    press 1 to show list
    press 2 to add people
    press 3 to edit people
    press 4 to delete people
    press 5 to search people
    press 6 to show menu
    press 0 to quit
'''

print(message)


class Person(object):
    """通讯录联系人"""


def ___init__(self, name, number):
    self.name = name
    self.number = number


def get_data(filename=datafile):
    # 文件存在且不为空
    if path.exists(filename) and path.getsize(filename):
        with open(filename, 'rb') as f:
            return pickle.load(f)
    return None


# 首次写入数据
def set_init_data(name, number, filename=datafile):
    personList = {} if get_data() is None else get_data()
    with open(filename, 'wb') as f:
        personList[name] = number
        pickle.dump(personList, f)


# 刷新数据
def save_data(dictPerson, filename=datafile):
    with open(filename, 'wb') as f:
        pickle.dump(dictPerson, f)


# 展示全部数据
def show_all():
    personList = get_data()
    if personList:
        for k, v in personList.items():
            print(k, v)
    else:
        print('not yet person, please add.')
        print(line)


def add_person(name, number):
    personList = get_data()
    if personList:
        personList[name] = number
        save_data(personList)
    else:
        set_init_data(name, number)
    print('success add person')
    print(line)


def edit_person(name, number):
    personList = get_data()
    if personList:
        personList[name] = number
        save_data(personList)
        print('success edit person')
        print(line)


def delete_person(name):
    personList = get_data()
    if personList:
        if name in personList:
            del personList[name]
            save_data(personList)
            print('success delete person')
        else:
            print(name, ' is not exist')
        print(line)


def search_person(name):
    personList = get_data()
    if personList:
        if name in personList.keys():
            print(name, personList.get(name))
        else:
            print('No this person of ', name)


while True:
    num = input('>>')
    if num == '1':
        print('show all personList:')
        show_all()
    elif num == '2':
        print('add person:')
        name = input('input name>>')
        number = input('input number>>')
        add_person(name, number)
    elif num == '3':
        print('edit person:')
        name = input('input name>>')
        number = input('input number>>')
        edit_person(name, number)
    elif num == '4':
        print('delete person:')
        name = input('input name>>')
        delete_person(name)
    elif num == '5':
        print('search :')
        name = input('input name>>')
        search_person(name)
    elif num == '6':
        print(message)
    elif num == '0':
        break
    else:
        print('input error, please retry')

参考:python输入与输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值