统计 HLM.txt 文件中每个汉字出现的次数,并按频次从高到低排序,将统计结果写入一个新文件中。给出Python代码
时间: 2023-06-02 20:07:59 浏览: 155
由于涉及到文件的操作,需要先打开文件,再读取文件中的内容。代码如下:
```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 文件中任两个关键词共现的行数,并将这些行内容写入到一个新文件
可以使用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 文件中的每行按逆序方式输出到一个新文件中。(行序保持不变,每行逆序)
好的,这是一个操作性问题,可以回答。以下是实现步骤:
1. 读取原文件HLM.txt,打开新文件,准备写入。
2. 对于文件中每一行,使用字符串的切片或倒序输出函数进行逆序处理。
3. 将逆序后字符串写入新的文件中。
4. 循环完所有行后,关闭文件。
请注意,以上操作仅为代码实现的参考,具体实现还需要根据编程语言等因素进行调整。
阅读全文