题目:《命运》是著名科幻作家倪匡的科幻作品。这里给出一个 《命运》的网络版本部分内容,文件名为“命运-网络版.txt”。 请编写程序,对这个文本中出现的字符进行统计,字符 与出现次数之间用冒号:分隔,将前10个最常用字符分别 输出保存到“命运-字符统计.txt”。 注意: 不统计字符包含 \n ,。!:? 输出格式: 命:90 运:80 寻:70 梦:60 --------------------------------------------------------- 注意:部分源程序给出如下。请勿改动其它函数中的任何内容, 仅在函数的注释标志之间填入所编写的若干语句。 ------------------------------------------------------''' fi = open("命运-网络版.txt", "r", encoding="utf-8") fo = open("命运-字符统计.txt", "w") #**********Program********** #********** End ********** fo.write("\n".join(ls[:10])) fi.close() fo.close()
时间: 2023-07-05 17:32:53 浏览: 153
下面是可以解决您问题的 Python 代码:
```python
fi = open("命运-网络版.txt", "r", encoding="utf-8")
fo = open("命运-字符统计.txt", "w")
# 统计字符出现次数
char_dict = {}
for line in fi:
for char in line:
if char not in '\n,。!:?' and char.isalnum():
char_dict[char] = char_dict.get(char, 0) + 1
# 按照出现次数从大到小排序
sorted_char = sorted(char_dict.items(), key=lambda x: x[1], reverse=True)
# 格式化输出前10个最常用字符
ls = []
for char, count in sorted_char[:10]:
ls.append(f"{char}:{count}")
# 将结果写入文件
fo.write("\n".join(ls))
fi.close()
fo.close()
```
这段代码与上一段代码的区别在于,在读取文件时逐行读取,然后对每行中的字符进行统计。
其他部分与上一段代码相同,首先统计字符出现次数并保存在字典 `char_dict` 中,然后对字典中的字符按照出现次数从大到小排序,最后格式化输出前10个最常用字符,并将结果写入到文件“命运-字符统计.txt”中。
注意,如果您使用的是 Python 2 版本,请将文件打开方式中的 `encoding='utf-8'` 去掉。