Python实现图书管理系统设计的代码怎么写
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"Python实现图书管理系统设计的代码怎么写"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有
千家信息网最后更新 2026年11月02日Python实现图书管理系统设计的代码怎么写
本篇内容介绍了"Python实现图书管理系统设计的代码怎么写"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
基于python的tkinter,将图书管理系统的界面进行简单的开发,我在这里使用的方法比较简单理解,但是代码过于繁多。添加、删除及修改并未使用数据库,而是使用了csv文件的读取操作,从而替代数据库。
基本效果如下图所示:

该系统将所有代码全都放在一个文件中,源码如下:
import osimport tkinterimport tkinter.messageboxfrom tkinter import *from tkinter import ttk class LoginPage (object): def __init__(self, master=None): self.root = master #定义内部变量root # 获取当前屏幕的宽高 self.width = self.root.winfo_screenwidth() self.height = self.root.winfo_screenheight() # 设置窗口大小 self.h = 600 self.w = 800 # 将窗口居中 self.y = (self.height - 600) / 2 self.x = (self.width - 800) / 2 self.root.geometry("%dx%d+%d+%d" %(self.w,self.h,self.x,self.y)) # 不允许修改窗口大小 self.root.resizable(False,False) self.addnum = StringVar() self.addname = StringVar() self.addauthor = StringVar() self.addchu = StringVar() self.adddate = StringVar() self.addpri = StringVar() self.altnum = StringVar() self.altname = StringVar() self.altauthor = StringVar() self.altchu = StringVar() self.altdate = StringVar() self.altpri = StringVar() self.createPage() # 创建页面 def createPage(self): #表格 tree = ttk.Treeview(self.root) tree.place(x=10,y=10,width=780,height=260) # #定义列 tree["columns"] = ("编号","书名","作者", "出版社", "出版日期", "价格") tree['show'] = 'headings' # 设置列,列还不显示 tree.column("编号", width=80,anchor ='c') tree.column("书名", width=150,anchor ='c') tree.column("作者", width=150,anchor ='c') tree.column("出版社", width=150,anchor ='c') tree.column("出版日期", width=150,anchor ='c') tree.column("价格", width=100,anchor ='c') #设置表头 tree.heading("编号", text="编号") tree.heading("书名", text="书名") tree.heading("作者", text="作者") tree.heading("出版社", text="出版社") tree.heading("出版日期", text="出版日期") tree.heading("价格", text="价格") #添加数据 f = open('图书.csv','r',encoding='utf-8') for line in f.readlines(): info = line[:-1].split(",") tree.insert("", 0, values=(info[0],info[1],info[2],info[3],info[4],info[5])) f.close() # 添加编号 addnum = Label(self.root, text="编号",font=('微软雅黑',10,''),anchor='w') addnum.place(x=42.5,y=280,height=20,width=80) addnuminput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.addnum) addnuminput.place(x=122.5,y=279,height=24,width=105) # 添加书名 addname = Label(self.root, text="书名",font=('微软雅黑',10,''),anchor='w') addname.place(x=42.5,y=310,height=20,width=80) addnameinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.addname) addnameinput.place(x=122.5,y=309,height=24,width=105) # 添加作者 addauthor = Label(self.root, text="作者",font=('微软雅黑',10,''),anchor='w') addauthor.place(x=42.5,y=340,height=20,width=80) addauthorinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.addauthor) addauthorinput.place(x=122.5,y=339,height=24,width=105) # 添加出版社 addchu = Label(self.root, text="出版社",font=('微软雅黑',10,''),anchor='w') addchu.place(x=42.5,y=370,height=20,width=80) addchuinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.addchu) addchuinput.place(x=122.5,y=369,height=24,width=105) # 添加出版日期 adddate = Label(self.root, text="出版日期",font=('微软雅黑',10,''),anchor='w') adddate.place(x=42.5,y=400,height=20,width=80) adddateinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.adddate) adddateinput.place(x=122.5,y=399,height=24,width=105) # 添加价格 addpri = Label(self.root, text="价格",font=('微软雅黑',10,''),anchor='w') addpri.place(x=42.5,y=430,height=20,width=80) addpriinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.addpri) addpriinput.place(x=122.5,y=429,height=24,width=105) # 添加按钮 add = Button(self.root,command=self.click, text ="添加书本",font=('微软雅黑',10,''),activeforeground='#ffffff',fg='#ffffff',activebackground='#7cba59',bd=2,bg='#2aa515') add.place(x=105,y=500,height=35,width=100) # 修改编号 altnum = Label(self.root, text="编号",font=('微软雅黑',10,''),anchor='w') altnum.place(x=292.5,y=280,height=20,width=80) altnuminput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.altnum) altnuminput.place(x=372.5,y=279,height=24,width=105) # 修改书名 altname = Label(self.root, text="书名",font=('微软雅黑',10,''),anchor='w') altname.place(x=292.5,y=310,height=20,width=80) altnameinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.altname) altnameinput.place(x=372.5,y=309,height=24,width=105) # 修改作者 altauthor = Label(self.root, text="作者",font=('微软雅黑',10,''),anchor='w') altauthor.place(x=292.5,y=340,height=20,width=80) altauthorinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.altauthor) altauthorinput.place(x=372.5,y=339,height=24,width=105) # 修改出版社 altchu = Label(self.root, text="出版社",font=('微软雅黑',10,''),anchor='w') altchu.place(x=292.5,y=370,height=20,width=80) altchuinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.altchu) altchuinput.place(x=372.5,y=369,height=24,width=105) # 修改出版日期 altdate = Label(self.root, text="出版日期",font=('微软雅黑',10,''),anchor='w') altdate.place(x=292.5,y=400,height=20,width=80) altdateinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.altdate) altdateinput.place(x=372.5,y=399,height=24,width=105) # 修改价格 altpri = Label(self.root, text="价格",font=('微软雅黑',10,''),anchor='w') altpri.place(x=292.5,y=430,height=20,width=80) altpriinput = Entry(self.root,font=('微软雅黑',10,''),textvariable=self.altpri) altpriinput.place(x=372.5,y=429,height=24,width=105) # 修改按钮 alter = Button(self.root,command=self.altclick, text ="修改书本",font=('微软雅黑',10,''),activeforeground='#ffffff',fg='#ffffff',activebackground='#7cba59',bd=2,bg='#2aa515') alter.place(x=350,y=500,height=35,width=100) # 保存按钮 pre = Button(self.root,command=self.show, text ="保存书本信息",font=('微软雅黑',10,''),activeforeground='#ffffff',fg='#ffffff',activebackground='#7cba59',bd=2,bg='#2aa515') pre.place(x=595,y=500,height=35,width=100) # 写入判断输入框是否有空值 def Isspace(self,text): temp = 0 for i in text: if not i.isspace(): temp = 1 break if temp==1: return 0 else: return 1 # 检查写入是否有空值 def click(self): addnum = self.addnum.get() addname = self.addname.get() addauthor = self.addauthor.get() addchu = self.addchu.get() adddate = self.adddate.get() addpri = self.addpri.get() if self.Isspace(addnum) or self.Isspace(addname) or self.Isspace(addauthor) or self.Isspace(addchu) or self.Isspace(adddate) or self.Isspace(addpri) : tkinter.messagebox.showerror(title='提示', message ="请填写所有信息") else: self.write(addnum,addname,addauthor,addchu,adddate,addpri) # 写入信息 def write(self,addnum,addname,addauthor,addchu,adddate,addpri): f = open('图书.csv','r',encoding='utf-8') for line in f.readlines(): info = line[:-1].split(",") if len(info)<6: break if info[0] ==addnum and info[1] ==addname: tkinter.messagebox.showinfo(title='结果', message ="已存在该图书信息!") f.close() return f.close() f = open('图书.csv','a',encoding='utf-8') f.write('{},{},{},{},{},{}\n'.format(addnum,addname,addauthor,addchu,adddate,addpri)) f.close() tkinter.messagebox.showinfo(title='提示', message ="写入成功,点击保存后更新") # 检查修改信息是否空白 def altclick(self): altnum = self.altnum.get() altname = self.altname.get() altauthor = self.altauthor.get() altchu = self.altchu.get() altdate = self.altdate.get() altpri = self.altpri.get() if self.Isspace(altnum) or self.Isspace(altname) or self.Isspace(altauthor) or self.Isspace(altchu) or self.Isspace(altdate) or self.Isspace(altpri) : tkinter.messagebox.showerror(title='提示', message ="输入项为空") else: self.modify(altnum,altname,altauthor,altchu,altdate,altpri) # 修改信息 def modify(self,altnum,altname,altauthor,altchu,altdate,altpri): temp = 0 with open("图书.csv","r",encoding="utf-8") as f: lines = f.readlines() with open("图书.csv","w",encoding="utf-8") as f_w: for line in lines: info = line[:-1].split(",") if info[0] ==altnum: temp = 1 f_w.write('{},{},{},{},{},{}\n'.format(altnum,altname,altauthor,altchu,altdate,altpri)) continue f_w.write(line) if temp==0: tkinter.messagebox.showerror(title='提示', message ="没有该信息") else: tkinter.messagebox.showinfo(title='提示', message ="修改成功,点击保存后更新") # 保存信息并显示 def show(self): self.createPage() root = Tk() root.title('图书管理') LoginPage(root) root.mainloop()在运行代码前需要在同级文件夹下创建一个名为"图书"的csv文件,如下图所示:

"Python实现图书管理系统设计的代码怎么写"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
微软
出版
图书
书名
价格
作者
信息
出版社
日期
代码
提示
系统
管理
文件
管理系统
书本
按钮
数据
设计
成功
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
保险科技 互联网保险
互联网科技产业
互联网金融监管科技数据
互联网科技有限公司图片
腾讯阿里互联网科技
互联网科技的
有马互联网科技
善班互联网科技
远信互联网科技
广西互联网科技公司
撒么互联网科技公司
阿里巴巴算科技企业还是互联网
岳阳华臻互联网科技有限公司
苏州五指互联网络科技有限
乌苏新华互联网科技做什么的
科技类公司包括互联网吗
爱医互联网络科技
深圳无忧互联网科技
新氧科技和美国互联网有关系吗
伍佰万互联网科技是干嘛的
湖南永感互联网科技有限公司
互联网金融 金融科技
科技服务与互联网
互联网 科技服务平台
互联网科技热点资讯
互联网时代科技改变生活
湖南诚度互联网科技有限公司
工业互联网等科技实现智能化赋能
区块链结合互联网科技
江苏互联网智能科技软件