Library Management
Library Management
def load_books(self):
"""Load books from the Books.txt file."""
if os.path.exists(self.file_name):
with open(self.file_name, "r") as file:
for line in file:
book_id, title, author, status = line.strip().split(',')
self.books[book_id] = {'Title': title, 'Author': author,
'Status': status}
def add_book(self):
"""Add a new book to the library."""
book_id = self.book_id_entry.get()
title = self.book_title_entry.get()
author = self.book_author_entry.get()
if book_id in self.books:
return # Do nothing if the book ID already exists
self.book_id_entry.delete(0, tk.END)
self.book_title_entry.delete(0, tk.END)
self.book_author_entry.delete(0, tk.END)
def check_out_book(self):
"""Mark a book as 'Checked Out'."""
book_id = self.book_id_entry.get()
if book_id in self.books:
if self.books[book_id]['Status'] == 'Checked Out':
return # Do nothing if the book is already checked out
self.book_id_entry.delete(0, tk.END)
self.save_books() # Save books to file
self.view_books() # Update the display
def delete_book(self):
"""Delete a book from the library."""
book_id = self.book_id_entry.get()
if book_id in self.books:
del self.books[book_id]
self.book_id_entry.delete(0, tk.END)
self.save_books() # Save books to file
self.view_books() # Update the display
def return_book(self):
"""Mark a book as 'Available'."""
book_id = self.book_id_entry.get()
if book_id in self.books:
if self.books[book_id]['Status'] == 'Checked Out':
self.books[book_id]['Status'] = 'Available'
self.book_id_entry.delete(0, tk.END)
self.save_books() # Save books to file
self.view_books() # Update the display
def view_books(self):
"""View all books (both available and checked-out)."""
self.books_display.config(state=tk.NORMAL)
self.books_display.delete(1.0, tk.END)
self.books_display.config(state=tk.DISABLED)
def view_checked_out_books(self):
"""View only checked-out books."""
self.books_display.config(state=tk.NORMAL)
self.books_display.delete(1.0, tk.END)
for book_id, book_info in self.books.items():
if book_info['Status'] == 'Checked Out':
self.books_display.insert(tk.END, f"Book ID: {book_id}\n")
self.books_display.insert(tk.END, f"Title: {book_info['Title']}\
n")
self.books_display.insert(tk.END, f"Author:
{book_info['Author']}\n")
self.books_display.insert(tk.END, f"Status:
{book_info['Status']}\n")
self.books_display.insert(tk.END, "\n")
self.books_display.config(state=tk.DISABLED)
def view_all_books(self):
"""View all books in the library (available or checked-out)."""
self.books_display.config(state=tk.NORMAL)
self.books_display.delete(1.0, tk.END)
self.books_display.config(state=tk.DISABLED)