脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服务器之家 - 脚本之家 - Python - python实现简易图书管理系统

python实现简易图书管理系统

2022-10-31 10:03w²大大 Python

这篇文章主要为大家详细介绍了python实现简易图书管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了python实现简易图书管理系统的具体代码,供大家参考,具体内容如下

一、设计需求

1.添加书籍
2.查询数据
3.借书

存储方式 ,用excel保存到硬盘上或者用.txt文件保存

二、实现代码

1.用excel存储

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
# 一、介绍
# 主要功能实现
# 1、借书
# 2、添加新书
# 3、查找图书
 
# 数据存储:excel表
 
import xlwt
import xlrd
import xlutils.copy
import os
 
#book = {"位置":"","书名":"","价格":"","作者":""}
#存储方式  用excel
title =["位置","书名","价格","作者"]
 
#查看当前的书本数,也就行号
def read_book_num():
    path = os.path.join(os.getcwd()+r'\图书.xls')
    print(path)
    flag = os.path.exists(path)
    if(flag):
        book_excel = xlrd.open_workbook("图书.xls")
        sheet1 = book_excel.sheets()[0]
        book_num = sheet1.nrows
    else:
        book_num = 0
    return book_num
 
def add_book(book_num):
    #判断excel是否存在,如果不存在,就创建
    path = os.path.join(os.getcwd()+r'\图书.xls')
    flag = os.path.exists(path)
    print("flag",flag)
    if(flag):
        #如果存在,就打开excel
        book_excel = xlrd.open_workbook("图书.xls"
        #并复制之前的已经存在的数据
        book_excel = xlutils.copy.copy(book_excel)
        sheet1 = book_excel.get_sheet(0)
        #sheet1 = book_excel.sheets()[0]
 
    else:
        book_excel = xlwt.Workbook("图书.xls") #新建excel
        sheet1 = book_excel.add_sheet(sheetname="图书表单",cell_overwrite_ok=True)
    while(1):
        #打印提示
        button_num = input("请选择你的操作\n:"+"1.添加新书\n"+"2.退出请按q\n")
        if(button_num == 'q'):
            break
        elif (button_num == "1"):
            #输入一本书的所有信息,并且先存储到book里面
            book = []  #清空书本信息
            input_value = '' #清空输入
            for i in range(4):
                print("请输入:",title[i])
                input_value = input()
                book.append(input_value)
            #存储到硬盘(将输入的数据存储到excel中)
            for i in range(4):
                #写入第book_num行数据
                sheet1.write(book_num,i,book[i])
            book_num = book_num +1 #总书数量加1
            book_excel.save("图书.xls")
            print("添加成功")
        else:
            print("输入无效,请重新输入!")
 
def search_book():
    #打开excel
    book_excel = xlrd.open_workbook("图书.xls")
    sheet1 = book_excel.sheets()[0]
    book_num = sheet1.nrows
    while(1):
        #输入书名 
        chose= input("请输入你的操作:\n"+"1.查询书籍:\n"+"2.退出请按q\n")
        if(chose == 'q'):
            break
        elif (chose == '1'):
            bookname = input("请输入书名:")
            for i in range(0,book_num):
                if(bookname == sheet1.cell(i,0).value):
                    print("查询成功,查询结果为\n",sheet1.row_values(i))
                    return
            else:
                print("查询失败,本书库没有此书")
                return
        else:
            print("操作有误,请重新输入!")
 
def borrow_book():
    #打开excel
    book_excel = xlrd.open_workbook("图书.xls")
    sheet1 = book_excel.sheets()[0]
    book_num = sheet1.nrows
 
    book_excel_copy = xlutils.copy.copy(book_excel)
    sheet1_copy = book_excel_copy.get_sheet(0)
    
    #重新创建一个excel,用于保存更新后的数据
    # book_excel_new = xlwt.Workbook("图书.xls") #新建excel
    # sheet1_new = book_excel_new.add_sheet(sheetname="1",cell_overwrite_ok=True)
    
    while(1):
         #输入书名
        print("1.请输入借书书名\n2.按q退出借书界面")
        bookname = input()
        if(bookname == 'q'):
            return
        else:
        #查找
            a = 0
            for i in range(0, book_num):
                if( bookname == sheet1.cell(i, 0).value ):
                    for j in range(4):
                        a = i + 1
                        while(book_num-a):
                            sheet1_copy.write(i,j,sheet1.cell(a,j).value)#清除位置
                            a += 1
                        print("借阅成功")   
                        book_excel_copy.save('图书.xls')
                        return
                    # else:
                    #     a = i
                    #     sheet1_copy.write(i,j,sheet1.cell(a,j).value)#清除位置
            
            #book_excel_copy.save('图书.xls')
             
 
if __name__ == '__main__':
    book_num = read_book_num()
    print(book_num)
    while(1):
        print("******图书管理系统****")
        print("******1.添加新书******")
        print("******2.查询书籍******")
        print("******3.借书*********")
        print("******4.退出*********")
        op = input("请输入你的操作:")
        if(op == "1"):
            add_book(book_num)
        elif (op == "2"):
            search_book()
        elif (op == "3"):
            borrow_book()
        elif (op == "4"):
            break
        else:
            print("输入无效,请重新输入!")

2.用txt文件方式存储

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
def add_book():
    file = open("图书管理系统.txt","a+")
    print("请输入要添加的书籍信息:")
    id = input("id:")
    name = input("bookname:")
    author = input("author:")
    #table = [name,id,author]
    file.write(id+" "+name+" "+author+"\r")
    print("书籍添加成功!")
    file.close()
 
def serch_book():
    file = open("图书管理系统.txt","r")
    name = input("请输入要查询书籍名称:")
 
 
    read_data_all = []
    count = len(file.readlines())
    #print(count)
 
    file.seek(0,0) #需要将文件指针移动到开头
 
    for i in range(count):
        read_data = file.readline().split()
        read_data_all.append(read_data)
        
    for read_data in read_data_all:
        # print(type(read_data))
        if(name==read_data[0]): 
            print("查询到的数据信息为:",read_data)
            break
    else:
        print("查找失败")
    file.close()
    return read_data
 
def borrow_book():
    
 
    file = open("图书管理系统.txt","r+")
    #先查找书籍存不存在,如果存在就借出
    count = len(file.readlines())
    read_data_all= []
    file.seek(0,0) #需要将文件指针移动到开头
    for i in range(count):
        read_data = file.readline().split()
        read_data_all.append(read_data)
    print(read_data_all)
    file.close()
 
    book = serch_book()
    file = open("图书管理系统.txt","w")
    
    for line in read_data_all:
        if book==line:
            continue
        line_to_str = ' '.join(line) #将列表装换成字符串
        file.write(line_to_str+"\n")
 
if __name__ == "__main__":
    #open直接打开一个文件,如果文件不存在则创建文件
    
    while(1):
        print("******图书管理系统****")
        print("******1.添加新书******")
        print("******2.查询书籍******")
        print("******3.借书**********")
        print("******4.退出**********")
        op = input("请输入你的操作:")
        if(op == "1"):
            add_book()
        elif(op == "2"):
            serch_book()
        elif(op == "3"):
            borrow_book()
        else:
            break

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://blog.csdn.net/qq_42585108/article/details/119806682

延伸 · 阅读

精彩推荐
  • Python解决Pytorch半精度浮点型网络训练的问题

    解决Pytorch半精度浮点型网络训练的问题

    这篇文章主要介绍了解决Pytorch半精度浮点型网络训练的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...

    阿刚的代码进阶之旅10512021-11-11
  • Pythonpytorch permute维度转换方法

    pytorch permute维度转换方法

    今天小编就为大家分享一篇pytorch permute维度转换方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    ShellCollector6172021-04-29
  • Python使用py-spy解决scrapy卡死的问题方法

    使用py-spy解决scrapy卡死的问题方法

    这篇文章主要介绍了使用py-spy解决scrapy卡死的问题方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    云中的鱼5122020-09-30
  • Pythonpython实现将读入的多维list转为一维list的方法

    python实现将读入的多维list转为一维list的方法

    今天小编就为大家分享一篇python实现将读入的多维list转为一维list的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    少女战士9132021-03-10
  • Python关于 Python json中load和loads区别

    关于 Python json中load和loads区别

    这篇文章主要介绍了关于 Python json中load和loads区别,文章也有简单的说明它们之间的相同点,然后详细介绍不同点,需要的朋友可以参考一下文章的具体内容...

    小小程序员ol7632022-02-25
  • PythonPython中处理字符串之islower()方法的使用简介

    Python中处理字符串之islower()方法的使用简介

    这篇文章主要介绍了Python中处理字符串之islower()方法的使用,是Python入门的基础知识,需要的朋友可以参考下 ...

    脚本之家5682020-07-01
  • PythonPython中查看文件名和文件路径

    Python中查看文件名和文件路径

    本篇文章主要介绍了Python中查看文件名和文件路径的方法。具有很好的参考价值,下面跟着小编一起来看下吧...

    Zhanxueyou12102020-09-27
  • Pythonpython 绘图模块matplotlib的使用简介

    python 绘图模块matplotlib的使用简介

    这篇文章主要介绍了python 绘图模块matplotlib的使用简介,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下...

    AsiaYe10372021-09-26