定义一个关键词列表,例如“贾宝玉”,“宝玉”,“宝钗”,“黛玉”,“林妹妹”等,统计HLM.txt 文件中任两个关键词共现的行数,并将这些行内容写入到一个新文件
时间: 2024-05-05 15:20:51 浏览: 116
可以使用Python实现这个任务。以下是代码实现:
```python
# 定义关键词列表
keywords = ["贾宝玉", "宝玉", "宝钗", "黛玉", "林妹妹"]
# 统计关键词共现的行数
lines = []
with open("HLM.txt", "r", encoding="utf-8") as f:
for line in f:
for i in range(len(keywords)):
if keywords[i] in line:
for j in range(i+1, len(keywords)):
if keywords[j] in line:
lines.append(line.strip())
break
# 将共现的行写入新文件
with open("共现行.txt", "w", encoding="utf-8") as f:
for line in lines:
f.write(line + "\n")
```
这段代码首先定义了关键词列表,然后遍历文件中的每一行,检查每个关键词是否在该行中出现。如果两个关键词都在该行中出现,则将该行添加到 `lines` 列表中。最后,将所有共现的行写入新文件中。
相关问题
从互联网上下载《红楼梦》的某一回组成文本文件hlm.txt,然后设计一程序统计林黛玉和贾宝玉两个人名在文件中出现的次数。
可以使用Python语言来实现这个程序。
首先,需要读入文件并将其内容存储在一个字符串变量中。可以使用以下代码来实现:
```python
with open('hlm.txt', 'r', encoding='utf-8') as f:
content = f.read()
```
然后,可以使用Python的字符串操作函数来统计林黛玉和贾宝玉两个人名在文件中出现的次数。可以使用以下代码来实现:
```python
lin_count = content.count('林黛玉')
jia_count = content.count('贾宝玉')
print('林黛玉出现次数:', lin_count)
print('贾宝玉出现次数:', jia_count)
```
完整代码如下:
```python
with open('hlm.txt', 'r', encoding='utf-8') as f:
content = f.read()
lin_count = content.count('林黛玉')
jia_count = content.count('贾宝玉')
print('林黛玉出现次数:', lin_count)
print('贾宝玉出现次数:', jia_count)
```
运行程序后,会输出统计结果。
统计 HLM.txt 文件中每个汉字出现的次数,并按频次从高到低排序,将统计结果写入一个新文件中。给出Python代码
由于涉及到文件的操作,需要先打开文件,再读取文件中的内容。代码如下:
```python
# 打开文件
with open('HLM.txt', 'r', encoding='utf-8') as f:
content = f.read()
# 统计每个汉字出现的次数
counter = {}
for char in content:
if char in counter:
counter[char] += 1
else:
counter[char] = 1
# 按频次从高到低排序
result = sorted(counter.items(), key=lambda x: x[1], reverse=True)
# 将统计结果写入新文件
with open('result.txt', 'w', encoding='utf-8') as f:
for item in result:
f.write(item[0] + ' : ' + str(item[1]) + '\n')
```
解释一下代码:先打开 HLM.txt 文件并读取其中的内容,然后对每个汉字进行统计。使用一个字典来存储每个汉字出现的次数,如果字典中已经有了某个汉字的统计信息,就将该汉字的统计次数加 1,否则将该汉字的统计次数初始化为 1。统计完成后,使用 sorted() 函数对字典中的统计结果进行排序,按照统计次数从高到低排序。最后将统计结果写入新文件 result.txt 中,每行一个汉字及其出现次数。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)