复杂一点的python图书管理系统
时间: 2023-06-29 21:02:18 浏览: 44
以下是一个简单的 Python 图书管理系统,包含基本的增删查改功能和文件存储。
```python
import os
class Book:
def __init__(self, title, author, isbn):
self.title = title
self.author = author
self.isbn = isbn
def __str__(self):
return f"{self.title} by {self.author} ({self.isbn})"
class BookList:
def __init__(self):
self.books = []
self.filepath = "books.txt"
if os.path.exists(self.filepath):
with open(self.filepath, "r") as f:
lines = f.readlines()
for line in lines:
title, author, isbn = line.strip().split(",")
book = Book(title, author, isbn)
self.books.append(book)
def add_book(self, book):
self.books.append(book)
self.save_books()
def remove_book(self, book):
self.books.remove(book)
self.save_books()
def find_book(self, title):
for book in self.books:
if book.title == title:
return book
def display_books(self):
for book in self.books:
print(book)
def save_books(self):
with open(self.filepath, "w") as f:
for book in self.books:
f.write(f"{book.title},{book.author},{book.isbn}\n")
def menu():
print("Welcome to the Book Manager!")
print("1. Add a book")
print("2. Remove a book")
print("3. Find a book")
print("4. Display all books")
print("5. Exit")
choice = input("Enter your choice: ")
return choice
booklist = BookList()
while True:
choice = menu()
if choice == "1":
title = input("Enter the book title: ")
author = input("Enter the book author: ")
isbn = input("Enter the book ISBN: ")
book = Book(title, author, isbn)
booklist.add_book(book)
elif choice == "2":
title = input("Enter the book title: ")
book = booklist.find_book(title)
if book:
booklist.remove_book(book)
else:
print("Book not found.")
elif choice == "3":
title = input("Enter the book title: ")
book = booklist.find_book(title)
if book:
print(book)
else:
print("Book not found.")
elif choice == "4":
booklist.display_books()
elif choice == "5":
print("Goodbye!")
break
else:
print("Invalid choice. Please try again.")
```
该系统使用 Book 类表示书籍,BookList 类包含 books 列表和文件路径,以及 add_book、remove_book、find_book、display_books 和 save_books 方法。
menu 函数打印菜单并返回用户选择。在主循环中,根据用户的选择执行相应的操作。
该系统将书籍信息保存在名为 books.txt 的文件中。如果文件存在,则在程序启动时读取文件并将书籍添加到 books 列表中。每次添加、删除或修改书籍时,都会将列表写回文件中。