python2 编写一个名片系统。要求可查找,查看全部名片,添加名片、删除名片,修改名片,永久写入本地文件中
时间: 2024-02-11 10:05:53 浏览: 31
下面是一个简单的 Python 2 版本的名片系统,包括了查找、查看全部、添加、删除和修改名片的功能,并且可以将名片信息永久写入本地文件中。
```python
# -*- coding: utf-8 -*-
import os
# 定义名片列表
cards = []
# 定义名片文件路径
card_file = 'cards.txt'
# 加载名片文件
if os.path.exists(card_file):
with open(card_file, 'r') as f:
for line in f.readlines():
cards.append(line.strip().split(','))
# 查找名片
def search_card(name):
for card in cards:
if card[0] == name:
return card
return None
# 查看全部名片
def show_all_cards():
if len(cards) > 0:
for card in cards:
print('姓名:%s,电话:%s,地址:%s,邮箱:%s' % tuple(card))
else:
print('没有名片信息!')
# 添加名片
def add_card():
name = raw_input('请输入姓名:')
if search_card(name):
print('该名片已存在!')
else:
phone = raw_input('请输入电话:')
addr = raw_input('请输入地址:')
email = raw_input('请输入邮箱:')
cards.append([name, phone, addr, email])
print('名片添加成功!')
# 删除名片
def del_card():
name = raw_input('请输入要删除的姓名:')
card = search_card(name)
if card:
cards.remove(card)
print('名片删除成功!')
else:
print('该名片不存在!')
# 修改名片
def modify_card():
name = raw_input('请输入要修改的姓名:')
card = search_card(name)
if card:
card[1] = raw_input('请输入电话:')
card[2] = raw_input('请输入地址:')
card[3] = raw_input('请输入邮箱:')
print('名片修改成功!')
else:
print('该名片不存在!')
# 保存名片文件
def save_card_file():
with open(card_file, 'w') as f:
for card in cards:
f.write(','.join(card) + '\n')
# 主函数
def main():
while True:
print('===============================')
print('名片系统')
print('1. 查找名片')
print('2. 查看全部名片')
print('3. 添加名片')
print('4. 删除名片')
print('5. 修改名片')
print('6. 退出系统')
print('===============================')
choice = raw_input('请输入您的选择:')
if choice == '1':
name = raw_input('请输入要查找的姓名:')
card = search_card(name)
if card:
print('姓名:%s,电话:%s,地址:%s,邮箱:%s' % tuple(card))
else:
print('该名片不存在!')
elif choice == '2':
show_all_cards()
elif choice == '3':
add_card()
elif choice == '4':
del_card()
elif choice == '5':
modify_card()
elif choice == '6':
save_card_file()
print('谢谢使用,再见!')
break
else:
print('输入有误,请重新输入!')
if __name__ == '__main__':
main()
```
由于 Python 2 已经不再维护,建议尽快转换到 Python 3。