Python基础之文件读写和列表字典使用
《侠客行》文本分析
目标
1. 统计《侠客行》中共出现了几个汉字
2. 每个汉字出现的次数
3. 记录出现频繁的汉字
代码
# -*- coding: utf-8 -*-
"""
Created on Thu Sep 7 12:57:41 2017
@author: Zhangzs
"""
fr = open('侠客行 作者:金庸.txt','r',encoding = 'utf-8')
list1 = []
dict1 = {}
def Chinese(str):
if str >= '\u4e00' and str <= '\u9fa5': #汉字的编码区间
return True
else:
return False
for line in fr:
for i in range(len(line)):
if not Chinese(line[i]):
continue
if not line[i] in list1:
list1.append(line[i])
if not line[i] in dict1.keys():
dict1[line[i]] = 0
dict1[line[i]] += 1
fr.close()
#print(len(list1)) #统计出现了多少个汉字
item=sorted(dict1.items(),key=lambda x:x[1],reverse=True)
#for i in range(20):
# print(item[i]) #输出了汉字出现次数前20个
fw = open('xkx.csv','w') #保存成.csv表的格式
fw.write('不同汉字个数'+','+str(len(list1))+'\n')
for i in range(20): #记录前20个频繁汉字
fw.write(item[i][0]+','+str(item[i][1])+'\n')
fw.close()
生成的表
注意编码格式:可用编辑器notepad++转成utf-8无BOM编码格式