实现对目标文件所有字符统计,单独不重复字符统计,并通过字典打印以及写入excel,以文件的形式输出统计的结果。
编码格式
# -*- coding:utf-8 -*-
导入包
import xlwt
主函数
if __name__ == '__main__':
data = read() # data 为 read()返回的结果
generate_excel(data) # generate_excel 函数传入参数 data
# for key, value in data.items():
# print(key+':'+str(value))
pass
read()函数以及作用
def read():
list1 = {} # 定义一个空字典
text = open(r'./27.txt', mode='rt', encoding='gbk').read()
# 打开目标文件 路径为当前文件夹下 mode为模式 encoding为编码格式
# .read()函数为对打开的文件进行读操作
# 结果返回赋值给text 返回的结果为对文章逐个字符进行拆分
# print([x for x in set(text)]) # 调试语句
demo1 = list(set(text))
# set()函数为遍历text,返回的结果为不重复的字符
# list()函数为将结果以list列表的形式输出
demo1.remove('\n')
# 剔除掉换行符\n
# print(demo1) # 测试代码
print("该篇文章共有几个字符", len(text))
# 输出结果 len()函数为 对text进行遍历,返回为text里的字符的个数
print("有几个不同的字:", demo1.__len__())
# 输出结果 __len__()函数为 对demo1进行遍历,返回为demo1里的字符的个数
# print(list(text))
for each_b in demo1:# for循环 作用:遍历demo1
count = 0
for each_a in list(text):# for循环 作用:遍历text
if each_b == each_a:
# 判断:如果该字符(demo1中)与该字符(text中)相同
count += 1 # 记录数值加1
list1[each_b] = count # 对记录数值进行存储
# print(each_b, ": ", count)
# print(list1)
return list1 # 返回列表 为记录的数值
generate_excel()函数以及作用
def generate_excel(expenses):
# 创建workbook(其实就是excel,后来保存一下就行)
workbook = xlwt.Workbook('./27.xlsx')
# 创建表 路径为当前文件夹下
worksheet = workbook.add_sheet('sheet1')
# 往单元格内写入内容:写入表头
worksheet.write(0, 0, label="字")
worksheet.write(0, 1, label="重复的次数")
# 往单元格内写入内容:写入内容
i = 1
for key, value in expenses.items(): # for循环
print(key + ':' + str(value))
worksheet.write(i, 0, label=key) #写入第i列第0个位置
worksheet.write(i, 1, label=value) #写入第i列第1个位置
i = i + 1
workbook.save('./27.xls') # 保存文件 路径为当前文件夹下
pass