在添加图书的时候,要求定义类booktype2,定义readBookType()方法,实现从booktype.csv读取图书类别的方法。 定义函数(add_book()):添加图书信息,数据存储到文件(book.csv)中,通过图书类别编号,调用booktype2类中的readBookType()方法读取图书类别的名称
时间: 2024-03-01 08:54:54 浏览: 95
读取和导出excel的工具库xlsx.full.min.js
好的,那么您可以按照以下步骤来实现从booktype.csv读取图书类别信息,以及在添加图书时调用该方法:
1. 定义BookType类,包括图书类别编号和图书类别名称两个属性。
```python
class BookType:
def __init__(self, id, name):
self.id = id
self.name = name
```
2. 定义readBookType方法,从booktype.csv文件中读取图书类别信息,并以列表形式返回。
```python
def readBookType():
booktypes = []
with open('booktype.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
booktype = BookType(row[0], row[1])
booktypes.append(booktype)
return booktypes
```
3. 在添加图书时,先调用readBookType方法获取所有图书类别信息,然后根据用户输入的图书类别编号,查找对应的图书类别名称。
```python
def add_book():
booktypes = readBookType()
# 获取用户输入的图书信息
bookid = input('请输入图书编号:')
bookname = input('请输入图书名称:')
bookauthor = input('请输入图书作者:')
bookprice = input('请输入图书价格:')
booktypeid = input('请输入图书类别编号:')
# 查找图书类别名称
booktypename = ''
for booktype in booktypes:
if booktype.id == booktypeid:
booktypename = booktype.name
break
if booktypename == '':
print('错误:无法找到对应的图书类别')
return
# 将图书信息写入book.csv文件
with open('book.csv', 'a', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerow([bookid, bookname, bookauthor, bookprice, booktypeid, booktypename])
print('成功添加图书信息!')
```
这样,当用户添加图书时,程序将会先从booktype.csv文件中读取图书类别信息,然后根据用户输入的图书类别编号,在图书类别列表中查找对应的图书类别名称。最后将图书信息写入book.csv文件,包括图书类别名称。
阅读全文