文本文件(.csv文件可以作为文本文件处理)中保存了图书馆藏书信息,每条藏书记录占一行 数据字段说明: LIBRARY_ID:藏馆ID(可能有多个藏馆) REC_CTRL_I:录入编号 BOOK_BARCO:图书条码 DEPARTMENT:所属部门 BOOK_SEARC:索书号 TITLE:图书名称 ISN:ISBN出版号 AUTHORS:作者 PUBLISHER:出版社 PUBDATE_DA:出版时间 BOOK_ATTRI:图书属性 BOOK_STATU:图书状态 (用函数定义不用pandas)列出所有书名中包括“开发”字样的藏书和这些藏书所属的出版社,(用函数定义不用pandas)统计每个出版社的”开发“字样藏书数量,
时间: 2024-03-04 11:48:37 浏览: 17
以下是用 Python 编写的函数实现:
```python
def search_books_with_keyword(file_name, keyword):
# 打开文件
with open(file_name, 'r', encoding='utf-8') as f:
# 读取所有行
lines = f.readlines()
# 遍历每一行
for line in lines:
# 将每行数据按逗号分隔成列表
data = line.strip().split(',')
# 如果书名中包含关键字
if keyword in data[5]:
# 输出书名和出版社
print(data[5], data[9])
def count_books_by_publisher(file_name, keyword):
# 定义一个字典,用于统计每个出版社的藏书数量
publisher_books = {}
# 打开文件
with open(file_name, 'r', encoding='utf-8') as f:
# 读取所有行
lines = f.readlines()
# 遍历每一行
for line in lines:
# 将每行数据按逗号分隔成列表
data = line.strip().split(',')
# 如果书名中包含关键字
if keyword in data[5]:
# 获取出版社名称
publisher = data[9]
# 如果该出版社已经在字典中,数量加1
if publisher in publisher_books:
publisher_books[publisher] += 1
# 否则将该出版社加入字典,数量初始化为1
else:
publisher_books[publisher] = 1
# 输出每个出版社的藏书数量
for publisher, count in publisher_books.items():
print(publisher, count)
```
其中,`search_books_with_keyword` 函数用于列出所有书名中包括“开发”字样的藏书和这些藏书所属的出版社;`count_books_by_publisher` 函数用于统计每个出版社的“开发”字样藏书数量。
这两个函数需要传入两个参数:文件名和关键字。文件名是指要处理的 CSV 文件的名称,关键字是指要搜索的书名中包含的关键字。
你可以这样调用这两个函数:
```python
search_books_with_keyword('books.csv', '开发')
count_books_by_publisher('books.csv', '开发')
```
这样就可以分别输出所有书名中包括“开发”字样的藏书和这些藏书所属的出版社,以及每个出版社的“开发”字样藏书数量。