Python实现的命令行通讯录


Python #通讯录2012-11-25 22:38

支持添加、删除、修改、搜索你的联系人以及他们的信息,包括性别,手机号码,邮箱和家庭住址。这些信息可以离线保存。

代码如下:

#!/bin/python
#coding=gb2312
import os;
try:
    import cPickle as p;
except:
    import pickle as p;
class Person:
    def __init__(self,name,sex="M",mobile="",email="",address=""):
        self.name=name;
        self.sex=sex;
        self.mobile=mobile;
        self.email=email;
        self.address=address;
    def alterInfo(self,mobile,email,address):
        self.mobile=mobile;
        self.email=email;
        self.address=address;

if os.path.exists("./dir.txt")==False:
    dirlist={};#空的通讯录
    p.dump(dirlist,open("./dir.txt",'w'),1);#把空的通讯录写入到文本文件中


print "请输入要进行的操作(添加:a,删除:r,修改:m,查找:f,退出:q):";
list=p.load(open("./dir.txt",'r'));
con=True;
while con:
    choice=raw_input("请选择你的操作(a,r,m,f,q):");
    if choice=='a':
        #添加
        n1=raw_input("请输入要添加人的姓名:");
        s1=raw_input("请输入要添加人的性别:");
        m1=raw_input("请输入要添加人的手机号码:");
        e1=raw_input("请输入要添加人的邮箱地址:");
        a1=raw_input("请输入要添加人的住址:");
        per1=Person(n1,s1,m1,e1,a1);
        list[n1]=per1;#加入到列表
        print "添加%s成功!\n" %n1;
    elif choice=='r':
        #删除
        n2=raw_input("请输入要删除的联系人姓名:");
        del list[n2];
        print "删除%s成功!\n" %n2;
    elif choice=='m':
        #修改
        n3=raw_input("请输入要修改人的姓名:");
        m3=raw_input("请输入要修改人的手机号码:");
        e3=raw_input("请输入要修改人的邮箱地址:");
        a3=raw_input("请输入要修改人的住址:");
        per3=list[n3];
        per3.alterInfo(m3,e3,a3);
        list[n3]=per3;
        print "修改%s成功!\n" %n3;
    elif choice=='f':
        #查找
        n4=raw_input("请输入要查找人的姓名:");
        try:
            per4=list[n4];
            print "%s的信息如下:" %n4;
            print "性别:%s,手机:%s,邮箱:%s,住址:%s\n" %(per4.sex,per4.mobile,per4.email,per4.address);
        except:
            print "%s不存在,没有这个人!\n" %n4;
        
    elif choice=='q':
        p.dump(list,open("./dir.txt",'w'),1);
        con=False;#退出
    else:
        print "请输入正确的操作选项! http://yige.org ";
        continue;


相关文章

粤ICP备11097351号-1