1. 程式人生 > >Python備份檔案、檔案版本的學生管理系統如何實現(將資料儲存在txt檔案中)

Python備份檔案、檔案版本的學生管理系統如何實現(將資料儲存在txt檔案中)

完成檔案的備份案例
答:
# 根據輸入的檔名進行復制新的檔名
old_file_name = input("請輸入要複製的檔名:")
new_file_name = old_file_name[:old_file_name.rfind(".")] + "_copyfile" + old_file_name[old_file_name.rfind("."):]


# 以可讀許可權開啟舊檔案
old_file = open(old_file_name, "r")
# 以可寫許可權開啟新檔案
new_file = open(new_file_name, "w")


while True:
    # 每次讀1mb位元組
    str1 = old_file.read(1024 * 1024)
    # 假如讀的1mb位元組的長度是零,跳出迴圈
    if len(str1) == 0:
        break
    # 不為零,則寫進新檔案
    else:

        new_file.write(str1)

檔案版本的學生管理系統如何實現(將資料儲存在txt檔案中)
答:
info_list = []
userName = "admin"
passWord = "123456"




def write_file():
    # 注意讀取格式
    student_file = open("student.txt", "w", encoding="utf-8")
    # 寫入的必須是字串,不能是陣列
    student_file.write(str(info_list))
    student_file.close()
    print("儲存成功")




def read_file():
    global info_list
    # 注意讀取格式
    student_file = open("student.txt", "r", encoding="utf-8")
    con = student_file.read()
    # 寫進去的時候是字串,所以要去掉引號拿出來
    info_list = eval(con)
    student_file.close()




def welcome():
    # 1、介面
    print("--------學生資訊管理器---------")
    print("-----1、新增名片-----")
    print("-----2、刪除名片-----")
    print("-----3、修改名片-----")
    print("-----4、查詢名片-----")
    print("-----5、查詢所有名片-")
    print("-----6、儲存進檔案-----")
    print("-----7、退出迴圈-----")
    print("-" * 30)




def add_info():
    name = input("請輸入姓名:")
    age = input("請輸入年齡:")
    sex = input("請輸入性別:")
    info_list.append({"name": name, "age": age, "sex": sex})
    print("【info】:新增成功")




def remove_info():
    name = input("刪除:請輸入姓名:")
    for i in info_list:
        if name in i.values():
            info_list.remove(i)
            print("【info】:刪除成功")
            break
    else:
        print("【Error】:查無此人")




def modify_info():
    # 修改學生資訊
    print(info_list)
    name = input("修改:請輸入姓名:")
    for i in info_list:
        if name in i.values():
            age = input("請輸入修改後的年齡:")
            sex = input("請輸入修改後的性別:")
            info_list[info_list.index(i)] = {"name": name, "age": age, "sex": sex}
            print("【info】:修改成功")
            break
    else:
        print("【Error】:查無此人")




def find_info():
    userName_input = input("請輸入你的使用者名稱:")
    passWord_input = input("請輸入你的密碼:")
    if (userName == userName_input) and (passWord == passWord_input):
        name = input("查詢:請輸入查詢姓名:")
        for i in info_list:
            if name in i.values():
                print("%s的資訊:" % name)
                for k, v in i.items():
                    print("%s : %s" % (k, v))
                break
        else:
            print("【Error】:查無此人")
    else:
        print("【Error】:使用者名稱或密碼錯誤")




def findAll_info():
    userName_input = input("請輸入你的使用者名稱:")
    passWord_input = input("請輸入你的密碼:")
    if (userName == userName_input) and (passWord == passWord_input):
        print("所有學生資訊如下:")
        for i in info_list:
            print(i)
    else:
        print("【Error】:使用者名稱或密碼錯誤")




def main():
    read_file()
    while True:
        welcome()
        # 2、輸入,接收使用者輸入的數字,執行相應的操作
        command = int(input("請輸入你的操作:"))


        # 3、通過判斷使用者輸入的數字是1,還是2,還是3...執行相應操作
        if command == 1:
            # 新增學生資訊
            add_info()
        elif command == 2:
            # 刪除學生資訊
            remove_info()
        elif command == 3:
            # 修改學生資訊
            modify_info()
        elif command == 4:
            # 查詢學生資訊
            find_info()
        elif command == 5:
            # 查詢所有學生資訊
            findAll_info()
        elif command == 7:
            # 退出系統
            # print("退出系統成功,謝謝使用")
            # break
            sign = input("【info】:確定要退出嗎?(yes or no):")
            if sign == "yes":
                print("退出系統成功,謝謝使用")
                break
            else:
                print("返回到主頁面")
                continue
        elif command == 6:
            write_file()
        else:
            print("【Error】:請輸入1-7之間的整數")


main()  # 程式入口函式