2020-03-20

题十六

《天龙八部》是著名作家金庸的代表作之一,历时4年创作完成。该作品气势磅礴,人物众多,非常经典。这里给出一个《天龙八部》的网络版本,文件名为“天龙八部-网络版.txt”.

问题一:请编写程序,对这个《天龙八部》文本出现的汉字和标点符号进行统计,字符与出现次数之间用冒号:分隔,输出保存到“天龙八部-汉字统计.txt”文件中,该文件要求采用CSV格式存储,参考格式如下(注意,不统计空格和回车字符):

天:100,龙:110,八:109,部:10

# 打开文件
fp = open('天龙八部-网络版.txt', 'r', encoding='utf-8')

# 操作文件
data = fp.read()
#print(data)

# 定义字典,接收数据
dictvar = {}

for char in data:
    # 如果第一次出现,则插入字典
    if char not in dictvar:
        dictvar[char] = 1
    # 如果字典中存在,则值+1
    else:
        dictvar[char] += 1 # dictvar[char] = dictvar[char] + 1

del dictvar['\n']
del dictvar['\u3000']

# 格式化输出
resultstr = ''

for k,v in dictvar.items():
    # 拼串
    resultstr += k + ':' + str(v) + ',' # resultstr = resultstr + (k + ':' + str(v) + ',')

resultstr = resultstr.rstrip(',')
fp.close()

# 转存文件
new_fp = open('天龙八部-汉字统计.txt', 'w', encoding='utf-8')
new_fp.write(resultstr)
new_fp.close()

作业
1.1对输出内容进行排序 sorted()

部:10,天:100,龙:110

1.2 拼串改成join方式

问题二请编写程序,对《天龙八部》文本中出现的中文词语进行统计,采用jieba库分词,词语与出现次数之间用冒号;分隔,输出保存到“天龙八部-词语统计.txt”文件中。参考格式如下(注意,不统计任何标点符号):

天龙:100,八部:10

import jieba
#打开文件
fp = open('天龙八部-网络版.txt', 'r', encoding='utf-8')
data = fp.read()
new_data = data.replace('\n', '')
new_new_data = new_data.replace('\u3000', '')
fp.close()

words = jieba.lcut(new_new_data)  # 精确分词,全分词cut_all=True  ,搜索分词 cut_for_search()

# 定义字典接收数据
dictvar = {}

# 遍历words
for word in words:
    # 没
    if word not in dictvar:
        dictvar[word] = 1
    # 有
    else:
        dictvar[word] += 1


bdfh = '“”'
for bd in bdfh:
    del dictvar[bd]
    
resultlist = []
    
for k,v in dictvar.items():
    resultstr = '{0}:{1}'.format(k,v)
    resultlist.append(resultstr)
    
result = ','.join(resultlist) #1,2,


# 转存文件
fp = open('天龙八部-词语统计.txt', 'w', encoding='utf-8')
fp.write(result)
fp.close()

作业
排序输出

你可能感兴趣的:(2020-03-20)