根据提示,在右侧编辑器补充代码,接收用户输入的一个诗人名字,统计并输出文件中该名字出现的次数(包括以作者身份出现和在诗句中出现),题目的测试数据保证都是文件中存在的诗人名字。 7.8 宋词三百首.txt 唐诗三百首 (2022).txt(下载后按题目要求修改文件名)
时间: 2024-12-15 09:19:55 浏览: 4
c代码-从键盘任意输入五个学生的姓名,编程找出并输出按字典顺序排在最前面的学生姓名。
5星 · 资源好评率100%
首先,你需要使用Python编写一个脚本,这里我会给出一个基本的示例。这个脚本会读取两个文本文件(假设它们分别名为"宋词三百首.txt"和"唐诗三百首.txt"),然后接受用户的输入查询诗人姓名,并计算这个名字在每个文件中出现的总次数。
```python
# 导入需要的模块
from collections import Counter
import os
def count_poet_name(poet_name):
# 指定文件路径
file_paths = ["宋词三百首.txt", "唐诗三百首.txt"]
# 初始化计数器
total_count = 0
# 遍历文件路径
for filename in file_paths:
if not os.path.exists(filename): # 检查文件是否存在
print(f"{filename} 文件不存在.")
continue
with open(filename, 'r', encoding='utf-8') as f:
content = f.read()
# 在文件内容中搜索诗人名称,注意诗句中的匹配通常需要正则表达式
poem_count = content.count(poet_name)
# 提供作者身份和诗句中的统计结果
author_and_poem_count = poem_count + content.count(f'作者:{poet_name}')
total_count += author_and_poem_count
print(f"在 {filename} 中,'{poet_name}' 出现了 {author_and_poem_count} 次.")
return total_count
# 接收用户输入的诗人名字
poet_input = input("请输入诗人名字: ")
count = count_poet_name(poet_input)
print(f"\n在两本书中,'{poet_input}' 总共出现了 {count} 次.")
阅读全文