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输入与输出