用python实现图书管理系统——通过excel文件或者TXT文件存放数据
话不多说,先上图,看看运行起来的效果:
由上图可知,我实现的主要功能:
- 用户注册
- 用户登录
- 添加图书
- 查询图书
- 删除图书
- 修改图书信息
- 观看所有图书信息
接下来详细介绍每个功能如何实现:
(这里,我分别用了两种方法实现对数据的运用)
在整个程序之前我先声明了两个全局变量,用于设立字典列表,分别存放用户信息和书籍信息:
users = []
books = []
举个例子,表明字典列表的详情:
读取数据
读取用户数据
如下为读取TXT文本数据:
每一行利用切割函数切割成相应内容,并放入列表中,再把列表内容传输到全局变量users[]中。
def ReadUsers_Information():
fopen = open("User_Information.txt",encoding="utf-8")
for line in fopen.readlines():
line = str(line).replace("\n", "")
users.append({
line.split()[0]:line.split()[1],line.split()[2]:line.split()[3],line.split()[4]:line.split()[5],line.split()[6]:line.split()[7]})
fopen.close()
如下为读取excel文本数据:
每一行利用单元格读取方法将单元格内容读取,并存入列表,再将列表内容传输给users[]
def ReadUsers_Information(): wb=openpyxl.load_workbook('User_Information.xlsx')
sh=wb['Sheet']
max_row = sh.max_row
max_column = sh.max_column
head = []
content = []
headcolumn = 1
column = 1
row = 2
while headcolumn <= max_column:
head.append(sh.cell(1,headcolumn).value)
headcolumn = headcolumn + 1
while row <= max_row:
while column <= max_column:
content.append(sh.cell(row,column).value)
column = column + 1
column = 1
row = row + 1
users.append({
head[0]:content[0],head[1]:content[1],head[2]:content[2],head[3]:content[3],})
content.clear()
读取书籍数据
与读取用户数据同理,我就不做多咬文嚼字了。
如下为读取TXT文本数据:
def ReadBooks_Information():
fopen = open("Book_Information.txt",encoding="utf-8" )
for line in fopen.readlines():
line = str(line).replace("\n", "")
if line != '': #防止line为空的时候执行下列写入语句导致出错
books.append({
line.split()[0]: line.split()[1], line.split()[2]: line.split()[3], line.split()[4]: line.split()[5],} )
fopen.close()
如下为读取excel文本数据:
def ReadBooks_Information():
wb = openpyxl.load_workbook( 'Book_Information.xlsx' )
sh = wb['Sheet']
max_row = sh.max_row
max_column = sh.max_column
head = []
content = []
headcolumn = 1
column = 1
row = 2
while headcolumn <= max_column:
head.append( sh.cell( 1, headcolumn ).value )
headcolumn = headcolumn + 1
while row <= max_row:
while column <= max_column:
content.append( sh.cell( row, column ).value )
column = column + 1
column = 1
row = row + 1
books.append( {
head[0]: content[0], head[1]: content[1], head[2]: content[2],} )
content.clear()
用户注册
将用户数据存放在TXT文件中:
用open()方法连接TXT文件,
再用write()方法写入数据,
最后还需记得要用close()方法
函数如下:
def AddUsers():
fopen = open("User_Information.txt",'a+',encoding="utf-8")
input_name=str(input("请输入新用户名:"))
input_passwd=str(input("请输入密码:"))
for user in users:
if input_name==user['name']:
print("用户名已存在")