一个文件版的名片管理系统(Python3)

记录日常学习,文件尚有不足之处需要改正

下面的这个网址是编译可运行的exe文件

https://download.csdn.net/download/valecalida/12026603

#!/usr/bin/python
# -*- coding: UTF-8-*-
# --author:valecalida--
# 主要以列表的功能实现,欢迎大家测试,提出您宝贵的意见
import sys
import os
import time
import xlwt
import xlrd
from pathlib import Path
user = {'vale':'111'}
Card_infos = []


def menu():
    print("----------Business Card Management System----------")
    print("\t\t\t1.添加一个新的名片")
    print("\t\t\t2.删除一个名片")
    print("\t\t\t3.修改一个名片的信息")
    print("\t\t\t4.查询一个名片的信息")
    print("\t\t\t5.显示所有的名片的信息")
    print("\t\t\t6.删除备份的名片信息")
    print("\t\t\t7.退出系统")
    print("----------Business Card Management System----------")


def add_card():
    print("请输入要添加的信息:")
    card_info = []
    name = input("\t\t请输入姓名:")
    qq_id = input("\t\t请输入QQ ID:")
    tel = input("\t\t请输入Telephone number:")

    card_info.append(name)
    card_info.append(qq_id)
    card_info.append(tel)
    Card_infos.append(card_info)
    print("正在新建,请稍后......")
    print("Done\n")


def save_card():
    myfile = xlwt.Workbook()
    myfile_sheet = myfile.add_sheet('sheet1')
    title_info = [['姓名', 'QQ ID', 'Telephone number']]
    row = 0
    for card_info in Card_infos:
        col = 0
        if row == 0:
            for title in title_info:
                for t in title:
                    myfile_sheet.write(row, col, t)
                    col += 1
                continue
        else:
            for card in card_info:
                myfile_sheet.write(row, col, card)
                col += 1
        row += 1
    myfile.save('Cards_Info.xls')


def reload_data():
    global Card_infos
    Card_infos = []
    try:
        reload_file = xlrd.open_workbook("Cards_Info.xls")
        reload_file_sheet = reload_file.sheet_by_index(0)
        index_row = 0
        for line in range(reload_file_sheet.nrows):
            card = []
            if line == 0:
                index_row += 1
                continue
        else:
            Card_infos.append(reload_file_sheet.row_values(index_row))
            # print(Card_infos)
    except Exception:
        pass



def change_card():

    if Card_infos:
        change_card_input = input("请输入您要修改人的名字:")
        for info in Card_infos:
            if change_card_input == info[0]:

                name = input("请输入姓名:")
                qq_id = input("请输入QQ ID:")
                tel = input("请输入Tel number:")

                info[0] = name
                info[1] = qq_id
                info[2] = tel
                print("正在修改,请稍后......\nDone\n")
                break
            else:
                print("系统中没有人叫:" + change_card_input)
                break
    else:
        print("系统里没有任何信息,无法进行修改\n")


def del_card():
    if Card_infos:
        clear_choice = input("Enter 'a' to clear all;Enter 'n' to clear by name:")
        if clear_choice == 'a':
            Card_infos.clear()
            clear_info()
        elif clear_choice == 'n':
            del_name = input("请输入您要删除人的名字:")
            for info in Card_infos:
                if del_name == info[0]:
                    Card_infos.remove(info)
                    print("正在删除,请稍后....\nDone.\n")
                    break
                else:
                    print("系统里没有关于这个人的信息,请仔细核对")
                    break
        else:
            print("请确定您的输入没有问题!\n")
    else:
        print("系统里没有任何信息,无法进行删除操作")


def search_card():
    # print(Card_infos)
    name = []
    for lines in Card_infos:
        name.append(lines[0])
    # print(name)
    if len(Card_infos) > 0:
        search_choice = input("请输入你要查找人的名字:")
        if search_choice in name:
            index = name.index(search_choice)
            # print(index)
            # print((Card_infos[index])[0])
            print("\tName:" + (Card_infos[index])[0] + "\n\tQQ:" + (Card_infos[index])[1] + "\n\tTel num:" +
                  (Card_infos[index])[2] + "\n")
        else:
            print("系统中没有人叫:" + search_choice + "\n")
    else:
        print("系统里没有任何信息,无法进行查询\n")


def display_all():
    # print(Card_infos,type(Card_infos))
    if Card_infos:
        print("系统中现在有 %d 个名片信息" % (len(Card_infos)))
        for infos in Card_infos:
            print("第 %s 个是:" % (Card_infos.index(infos) + 1))
            print("\tName:" + str(infos[0]) + "\n\tQQ:" + str(infos[1]) + "\n\tTel num:" + str(infos[2]) + "\n")
    else:
        print("系统里没有任何名片信息.\n")


def turn_off():
    print("正在退出...")
    sys.exit()


def guest():
    user_name = input("请输入您的名字:")
    user_pass = input("请输入您的密码:")
    if user_name in user_name and user_pass == user.get(user_name):
        print("welcome to Business Card Management System:")
        detect_file()
        menu()
    else:
        print("请确认您的账号密码是否正确,请稍后再试。")
        exit()


def detect_file():
    path = os.getcwd()
    myfile = Path(path + '\\''Cards_Info.xls')
    # print(myfile)
    if myfile.is_file():
        print("\t\t检测到有之前保存的名片信息,正在载入...")
        time.sleep(1)
        print("载入成功!")
    else:
        print("没有存储的信息,将直接进入系统!")
    return myfile.is_file()


def clear_info():
    filename = os.listdir()
    if 'Cards_Info.xls' in filename:
        try:
            retcode = os.system("del Cards_Info.xls")
            if retcode == 0:
                print("已清空!")
            else:
                print("清理过程中好像出现了一点问题,请手工核对一下。")
        except Exception:
            pass
    else:
        print("系统没有备份文件,无需进行删除操作!")

def main():
    reload_data()
    guest()
    while True:
        try:
            flag = True
            while flag:
                operate_code = int(input("请输入要进行的操作:"))
                if 0 < operate_code <= 7:
                    # return operate_code
                    flag = False
                else:
                    print("请输入1-7中间的值")
        except ValueError:
            print("请确定您的输入符合输入标准\n")
        else:
            if operate_code == 1:
                add_card()
                save_card()
            elif operate_code == 2:
                del_card()
                save_card()
            elif operate_code == 3:
                change_card()
                save_card()
            elif operate_code == 4:
                search_card()
            elif operate_code == 5:
                display_all()
            elif operate_code == 6:
                print("清除过程中不会影响程序正在占用的数据!.")
                clear_info()
            elif operate_code == 7:
                # print(Card_infos)
                turn_off()


if __name__ == "__main__":
    main()

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章