文本文件(.csv文件可以作为文本文件处理)中保存了图书馆藏书信息,每条藏书记录占一行 数据字段说明: LIBRARY_ID:藏馆ID(可能有多个藏馆) REC_CTRL_I:录入编号 BOOK_BARCO:图书条码 DEPARTMENT:所属部门 BOOK_SEARC:索书号 TITLE:图书名称 ISN:ISBN出版号 AUTHORS:作者 PUBLISHER:出版社 PUBDATE_DA:出版时间 BOOK_ATTRI:图书属性 BOOK_STATU:图书状态 列出所有书名中包括“开发”字样的藏书,并列出这些藏书所属的出版社,用函数定义(不用pandas)统计每个出版社的”开发“字样藏书数量
时间: 2024-04-28 22:19:28 浏览: 102
好的,我可以帮你编写一个 Python 函数来实现这个功能。
首先,读取文本文件,逐行检查是否包含“开发”字样,如果包含则记录下该书籍的出版社和书名。最后,统计每个出版社的“开发”字样藏书数量。
以下是实现代码:
```python
def count_books_with_keyword(file_path, keyword):
# 定义一个字典,用于统计每个出版社的“开发”字样藏书数量
publisher_count = {}
# 读取文本文件
with open(file_path, 'r', encoding='utf-8') as f:
for line in f:
# 将每行数据按照逗号分隔成一个列表
data = line.strip().split(',')
# 判断书名是否包含关键字
if keyword in data[6]:
# 记录下该书籍的出版社和书名
publisher = data[8]
book_title = data[6]
if publisher in publisher_count:
publisher_count[publisher] += 1
else:
publisher_count[publisher] = 1
# 输出每个出版社的“开发”字样藏书数量
for publisher, count in publisher_count.items():
print(publisher, count)
```
你可以将文件路径和关键字作为参数传入该函数,例如:
```python
count_books_with_keyword('books.csv', '开发')
```
这将会列出所有书名中包括“开发”字样的藏书,并统计每个出版社的“开发”字样藏书数量。
阅读全文