统计 HLM.txt 文件中每个汉字出现的次数,并按频次从高到低排序,将统计结果写入一个新文件中。给出Python代码
时间: 2023-06-02 08:07:59 浏览: 151
由于涉及到文件的操作,需要先打开文件,再读取文件中的内容。代码如下:
```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 中,每行一个汉字及其出现次数。
相关问题
定义一个关键词列表,例如“贾宝玉”,“宝玉”,“宝钗”,“黛玉”,“林妹妹”等,统计HLM.txt 文件中任两个关键词共现的行数,并将这些行内容写入到一个新文件
假设HLM.txt文件中包含了《红楼梦》的文本,我们可以使用Python来完成这个任务。代码如下:
```python
keywords = ["贾宝玉", "宝玉", "宝钗", "黛玉", "林妹妹"]
# 统计关键词共现的行数
lines = []
with open("HLM.txt", "r", encoding="utf-8") as f:
for line in f:
if any(keyword in line for keyword in keywords):
lines.append(line)
# 将这些行内容写入到一个新文件
with open("co-occurrence.txt", "w", encoding="utf-8") as f:
f.writelines(lines)
```
解释一下代码:
首先,我们定义了一个关键词列表,其中包含了几个《红楼梦》中的重要人物。
接着,我们打开HLM.txt文件,并逐行读取文件内容。对于每一行,我们使用any函数判断该行是否包含了关键词列表中的任意一个关键词。如果包含了,我们就将该行添加到一个列表中。
最后,我们打开一个新文件co-occurrence.txt,并将上一步中得到的所有行内容写入到该文件中。注意,我们使用了writelines函数,该函数可以将一个字符串列表直接写入到文件中。
将 HLM.txt 文件中的每行按逆序方式输出到一个新文件中。(行序保持不变,每行逆序)
好的,这是一个操作性问题,可以回答。以下是实现步骤:
1. 读取原文件HLM.txt,打开新文件,准备写入。
2. 对于文件中每一行,使用字符串的切片或倒序输出函数进行逆序处理。
3. 将逆序后字符串写入新的文件中。
4. 循环完所有行后,关闭文件。
请注意,以上操作仅为代码实现的参考,具体实现还需要根据编程语言等因素进行调整。
阅读全文