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() # 程式入口函式