调查问卷结果为: 调查文件评语result.txt文档存放在d:\Pvthon下, 不满意,一般,满意,一般,很满意,满意, 一般,一般,不满意,满意,满意,满意,满意,一般,很满意, 一般,不满意 很满意,一般 读取该文件内容; 统计各评语出现的次数,用字典表示; 将字典最终统计结果追加至result.txt文件中.
时间: 2024-03-03 17:48:30 浏览: 74
好的,我会根据您的要求进行操作。以下是Python代码实现:
```python
# 读取文件内容
with open('d:\\Python\\result.txt', 'r') as f:
content = f.read()
# 统计各评语出现的次数
words = content.split(',')
count = {}
for word in words:
if word in count:
count[word] += 1
else:
count[word] = 1
# 将字典最终统计结果追加至result.txt文件中
with open('d:\\Python\\result.txt', 'a') as f:
f.write('\n统计结果:\n')
for key, value in count.items():
f.write(key + ': ' + str(value) + '\n')
```
请注意,以上代码中的文件路径是根据您提供的要求进行设置的,如果文件路径不正确,会导致读取或写入文件失败。
相关问题
利用pvthon基础库(不能用mumpy)编制一个函数,求第一序列加上5与第二序列对应数值乘积之和,并返回计算结果,给出对函数的测试数据。比如输入a=1,2.31: b=13..5]函数完成的功能相当于:(1+5)*3+(2+5)*4+3+5)*5=86。要求,对输入序列长度进行判断,如果不等长,输出“两序列长度不等”提示。参考: 函数: len可以得到序列长度,如len([7,8,9])返回3
好的,我知道了。以下是您需要的代码:
```python
def calculate_sum(a, b):
if len(a) != len(b):
return "两序列长度不等"
else:
total_sum = 0
for i in range(len(a)):
total_sum += (a[i] + 5) * b[i]
return total_sum
```
这个函数接收两个序列a和b,然后检查它们的长度是否相等。如果长度不相等,函数将返回一个字符串“两序列长度不等”,否则将计算第一个序列加上5与第二序列对应数值乘积之和,并返回计算结果。
以下是对该函数的测试数据:
```python
a = [1, 2, 3]
b = [3, 4, 5]
print(calculate_sum(a, b)) # 输出:86
a = [1, 2, 3]
b = [3, 4]
print(calculate_sum(a, b)) # 输出:两序列长度不等
```
希望这可以帮助您!
《天龙八部》是金庸的重要武侠作品之一。这里给出一个《天龙八部》的网络版本,文件名为“天龙八部-网络版.txt”。请编写程序,对该文件中出现的中文词语进行统计,统计文件中前20位出场最多的人物。wordcloud是一款基于Pvthon的词云第二方库,支持对词语数量、背景蒙版、字体颜色等各种细节K设置,试结合leba的分词功能构建《天龙八部》人物出场次数最多的前20人人物姓名的词云,并输出到图片文件中,要求: (1)词云图片大小设置为: 1000700,背景色为白色 (2)字体为“微软雅黑”,最小字体设置为10,最大字体设置为180(3)利用五角星图片“fivestar.png”将词云生成为星形
为了能够实现该功能,需要安装以下库:
- jieba: 用于中文分词
- wordcloud: 用于生成词云
- matplotlib: 用于生成图片
可以通过以下命令安装:
```
!pip install jieba
!pip install wordcloud
!pip install matplotlib
```
安装完成后,可以按照以下步骤进行操作:
1. 读取《天龙八部》网络版文件,使用jieba进行中文分词,统计每个人物出现的次数。
```python
import jieba
# 读取文件
with open('天龙八部-网络版.txt', 'r', encoding='utf-8') as f:
data = f.read()
# 使用jieba进行中文分词
words = jieba.lcut(data)
# 统计人物出现次数
counts = {}
for word in words:
if len(word) == 1:
continue
counts[word] = counts.get(word, 0) + 1
```
2. 对出现次数进行排序,取前20位出场最多的人物。
```python
# 对出现次数进行排序
items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)
# 取前20位出场最多的人物
top20 = items[:20]
```
3. 生成词云并输出到图片文件中。
```python
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image
# 读取五角星图片
mask = np.array(Image.open('fivestar.png'))
# 生成词云
wc = WordCloud(
font_path='msyh.ttf',
background_color='white',
max_words=2000,
mask=mask,
max_font_size=180,
min_font_size=10,
mode='RGBA'
)
# 生成词云图像
wc.generate_from_frequencies(dict(top20))
# 提取颜色
image_colors = ImageColorGenerator(mask)
plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
plt.axis("off")
# 保存图片
wc.to_file('output.png')
```
最后,程序会在当前目录下生成一个名为“output.png”的图片文件,即为生成的词云图片。
阅读全文