在调试代码的过程中,我已经遇到几次这样的报错了。这里的意思是我在创建这些对象是没有指定这些参数,这是不是我book.txt文件里面的没有指定有关?我应该怎么解决?
代码不完整,你是怎么调用addbook的,需要传入book对象,你传入了没有
class BookManager:
def __init__(self):
self.book_file = 'C:/Users/付哉/Desktop/python期末大作业2022.2/book.txt'
# 添加图书
def add_book(self, book):
with open(self.book_file, 'a', encoding='utf-8') as f:
bNo, bName, bClass, bPublic, bAuthor, bName, bPrice, bNum, bDate = book
f.write(f"{bNo},{bName},{bClass},{bPublic},{bAuthor},{bName},{bPrice},{bNum},{bDate}\n")
print("添加图书成功!")
# 修改图书
def modify_book(self, bNo, new_book):
books = []
with open(self.book_file, 'r', encoding='utf-8') as f:
for line in f:
book = line.strip().split()
if book[0] == bNo:
books.append(new_book)
else:
books.append(book)
with open(self.book_file, 'w', encoding='utf-8') as f:
for book in books:
f.write(f"{','.join(book)}\n")
print("修改图书成功!")
# 删除图书
def delete_book(self, bNo):
books = []
with open(self.book_file, 'r', encoding='utf-8') as f:
for line in f:
book = line.strip().split()
if book[0] != bNo:
books.append(book)
with open(self.book_file, 'w', encoding='utf-8') as f:
for book in books:
f.write(f"{','.join(book)}\n")
print("删除图书成功!")
# 查询图书
def search_book(self, bNo=None, bName=None):
result = []
with open(self.book_file, 'r', encoding='utf-8') as f:
for line in f:
book = line.strip().split()
if bNo and book[0] == bNo:
result.append(book)
elif bName and book[1] == bName:
result.append(book)
return result
# 浏览图书
def browse_books(self):
with open(self.book_file, 'r', encoding='utf-8') as f:
for line in f:
print(line.strip())
# 测试
while True:
bm = BookManager()
choice = input("请选择功能:1.添加 2.修改 3.删除 4.查询 5.浏览 6.退出\n")
if choice == "1":
bm.add_book()
elif choice == "2":
bm.modify_book()
elif choice == "3":
bm.delete_book()
elif choice =="4":
bm.search_book()
elif choice =="5":
bm.browse_book()
elif choice =="6":
break
else:
print("无效输入,请重新选择。")