什么也不说,直接上:
import pickle, os, logging
version = '0.0.1'
logging.basicConfig(
filename='address_log.log',
level=logging.DEBUG,
format='%(asctime)s: %(levelname)s: %(message)s'
)
book_file = 'address_book.data'
def save(name, phone, address):
#保存新记录。
#Todo:
#1. 增加异常处理:当文件存在,但为空时,load时会出错
#2. 目前保存的字段都是固定的,增加删除一个字段很麻烦,需要优化
if not os.path.exists(book_file):
book = {}
f = open(book_file, 'wb')
book[name]=[phone, address]
pickle.dump(book, f)
f.close()
logging.info('新建地址本成功,并且新增了第一条数据,数据信息为:{0}'.format(book[name]))
print('保存成功')
print('')
input('输入任意字符返回')
else:
f = open(book_file, 'rb')
book = pickle.load(f)
f.close()
f2 = open(book_file, 'wb')
book[name]=[phone, address]
pickle.dump(book, f2)
f2.close()
logging.info('保存名字为 {0} 的数据成功'.format(name))
print('保存成功')
print('')
input('输入任意字符返回')
def view_all():
f = open(book_file, 'rb')
book = pickle.load(f)
j = 1
for i in book.keys():
print ('----------第', j ,'条记录,总共', len(book), '条记录----------')
print ('姓名:',i)
print ('手机:',book[i][0])
print ('地址:',book[i][1])
j = j + 1
f.close()
logging.info('打印所有记录, 总共有{0}条数据'.format(len(book)))
print('')
input('输入任意字符返回')
def search(name): #以名字为键值进行查找
f = open(book_file, 'rb')
flg = False
book = pickle.load(f)
for i in book.keys():
if i == name:
print('查询结果:')
print('姓名:', name)
print('电话:', book[i][0])
print('地址:', book[i][1])
flg = False
logging.info('查找到一条数据,姓名:{0}, 电话:{1}, 地址:{2}'.format(i, book[i][0], book[i][1]))
print('')
input('输入任意字符返回')
break
else:
flg = True
if flg:
print('没有找到相关记录')
logging.info('没有找到姓名为 {0} 的记录'.format(name))
print('')
input('输入任意字符返回')
def remove(name): #以名字为键值进行删除
f = open(book_file, 'rb')
book = pickle.load(f)
book2 = book.copy()
f.close()
for i in book.keys():
if i == name:
f = open(book_file, 'wb')
del book2[i]
pickle.dump(book2, f)
f.close()
logging.info('成功删除姓名为 {0} 的记录'.format(name))
print('成功删除名字为{0}的记录'.format(name))
break;
f.close()
def modify(name):#修改记录
f = open(book_file, 'rb')
book = pickle.load(f)
book2 = book.copy()
f.close()
for i in book.keys():
if i == name:
f = open(book_file, 'wb')
phone = input('输入电话号码:')
address = input('输入地址:')
book2[name] = [phone,address]
pickle.dump(book2, f)
logging.info('成功修改姓名为 {0} 的记录,新的电话号码是 {1}, 新的地址是: {2}'.format(name, phone, address))
break
print('')
input('输入任意字符返回')
#主界面
while True:
print('')
print('1.查询所有记录')
print('2.查询单个记录')
print('3.修改记录')
print('4.删除记录')
print('5.新增记录')
print('0.退出')
print('')
i = input('请输入:')
if i == '1':
view_all()
elif i == '2':
name = input('输入名字:')
search(name)
elif i == '3':
name = input('输入名字:')
modify(name)
elif i == '4':
name = input('输入名字:')
remove(name)
elif i == '0':
print('你已退出')
break
elif i == '5':
name = input('输入姓名:')
phone = input('输入电话号码:')
address = input('输入地址:')
save(name, phone, address)
else:
print('输入错误,请重新输入')
continue
分享到:
相关推荐
《简明 Python 教程》byte-of-python-chinese-edition + pdf
《byte-of-python-chinese-edition》即《简明Python教程》,是一本面向初学者的Python入门教程书籍。由Swaroop C H所著,本书的宗旨是向读者介绍如何使用Python语言进行编程。2005年,沈洁元翻译了本书的1.20版,并...
《A Byte of Python》是一本面向初学者的Python编程入门书籍,旨在帮助读者快速掌握Python语言的基础知识和核心概念。书中的内容涵盖了Python的诸多特性,适合不同背景的读者群体,无论是学术研究还是个人兴趣,都能...
《A Byte of Python》是一本全面介绍Python编程语言的入门书籍,该书的中文版《简明Python教程》主要面向初学者,并可供计算机行业的相关人员参考。书中以清晰的结构和突出的重点,覆盖了Python的基础知识,帮助读者...
《简明Python教程》(原名《A Byte of Python》)是一本由Swaroop C H编写的自由图书,旨在为编程入门者提供一个使用Python语言进行编程的快速入门指南。这本书自首次发行以来,凭借其简洁明了的风格和丰富的实例,...
《A Byte of Python》是一本面向初学者的免费编程书籍,专门介绍Python 3语言。如果你对计算机的了解仅限于保存文本文件,那么这本书就是为你准备的。它旨在通过简单易懂的方式引导读者入门Python编程。 本书内容...
《A-byte-of-python》是一本深受初学者喜爱的Python编程入门教程,中文版的发布使得更多中文用户能够方便地学习Python。这本书以其清晰易懂的风格和实用的示例,帮助读者快速掌握Python语言的基础知识和核心概念。...
《简明Python教程》是由Swaroop C H编写的,旨在向读者介绍如何使用Python语言进行编程。这本教程为初学者提供了关于Python编程语言的基础知识,涵盖了从安装Python环境到编写简单游戏的基本技能。本书以教材和指南...
- **内容覆盖**:包括Python3的基础知识和使用方法,同时也提供了关于如何适应Python2的指导。 #### 二、教程内容框架 - **基础部分**:涵盖了运算符与表达式、控制流、函数、模块等基本概念,帮助读者快速掌握...
简明 Python 教程 《A Byte of Python》是一本由 Swaroop C H 编写,旨在于介绍如何使用 Python 语言进行编 程的自由图书。它以教材与指南的形式为入门者介绍 Python 语言。如果你对电脑知识的了解 仅限于如何保存...
"Python 编程基础知识" Python 是一种高级、解释型的编程语言,具有简洁的语法、强大的功能和丰富的标准库。Python 适合用于各种应用开发,如 Web 开发、科学计算、数据分析、人工智能、机器学习等。 Python 的...
《Byte of Python-cn》是一本面向初学者的Python编程学习资料,它以其深入浅出的讲解方式,为读者提供了一条轻松掌握Python编程语言的路径。这本书覆盖了Python的基础知识,包括语法、数据结构、函数、模块、面向...