#/usr/bin/env python
# *-*coding:utf-8 *-*

#运行环境python3用Counter统计书中单词的使用次数

import sys
from collections import Counter

#参照python基础教程使用lines 和blocks生成文本块
#

def lines(filee):
for line in filee:
yield line
yield '\n'

def blocks(filee):
block = []
for line in lines(filee):
if line.strip():
block.append(line)
elif block:
yield ''.join(block).strip()
block = []

#old_add_new将初始字典的单词计数键值和每个块counter返回的字典相加得到新的键值
def old_add_new(new_dict, old_dict):

for key in new_dict:
try:
new_value = new_dict[key]+old_dict[key]
old_dict[key] = new_value

except KeyError:
old_dict[key] =  new_dict[key]
return old_dict

#初始字典
Total = {}

#处理文件输出
def handler(filee):
for block in blocks(filee):
block = block.split()
counter = Counter(block)
old_add_new(counter, Total)

for word, number in (Counter(Total).most_common(100)):
print(word, number)

handler(sys.stdin)

#命令行输入 $: python counter.py <input-text.txt> out-text.txt

"""-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"""
#把统计的数据生成pdf

#/usr/bin/env python
# *-*coding:utf-8 *-*

"""
把书中单词数据制作成pdf
"""
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import *
from reportlab.lib import colors

#对象容器
elements = []
#列表样式
styles = getSampleStyleSheet()
#设置文件标题
doc_title = SimpleDocTemplate('Words Times')
#添加表格的标题文字, 风格为Title
elements.append(Paragraph('Number of times the word appears in the book', styles['Title']))

#创建二维数据表格
filepath = '~/janeoutput.txt'
data = [['BookName', 'Jane Eyre']]
with open(filepath) as files:
for line in files:
data.append(line.split())

data.append(['End!', 'End!'])
#print(data)

#设置表格风格 字体对齐方式 网格以及划线

ts = [('ALIGN', (1,1), (-1,-1), 'CENTER'),
      ('LINEABOVE', (0,0), (-1,0), 1, colors.yellow),
      ('LINEBELOW', (0,0), (-1,0), 1, colors.green),
      ('FONT', (0,0), (-1,0), 'Times-Bold'),
#下三行设置
 ('LINEABOVE', (0,-1), (-1,-1), 1, colors.blue),
     ('LINEBELOW', (0,-1), (-1,-1), 0.5, colors.black, 1, None, None, 4,1),
     ('LINEBELOW', (0,-1), (-1,-1), 1, colors.black),
     ('FONT', (0,-1), (-1,-1), 'Times-Bold')]

#将数据和风格添加到Table中创建Table对象, 将Table对象加入到elements中
table = Table(data, style= ts)
elements.append(table)
#创建图像
doc_title.build(elements)

统计书中单词出现次数, 然后把数据生成pdf相关推荐

  1. python中统计单词出现的次数_python统计文章中单词出现次数实例

    python统计单词出现次数 做单词词频统计,用字典无疑是最合适的数据类型,单词作为字典的key, 单词出现的次数作为字典的 value,很方便地就记录好了每个单词的频率,字典很像我们的电话本,每个名 ...

  2. python中统计各个单词出现的次数使用方法_python统计文章中单词出现次数实例

    python统计单词出现次数 做单词词频统计,用字典无疑是最合适的数据类型,单词作为字典的key, 单词出现的次数作为字典的 value,很方便地就记录好了每个单词的频率,字典很像我们的电话本,每个名 ...

  3. python统计文本中单词出现次数

    任一个英文的纯文本文件,统计其中的单词出现的个数,其实就是考察re的运用,代码: #-*-coding:utf-8-*- import redef count_words(file_path):wit ...

  4. python编程:统计文件中单词出现次数

    f=open("2.txt",'r')ll=f.read()'''将空格都取代为逗号,方便后面的split()'''ll=ll.replace(" ",',') ...

  5. python统计单词出现次数最多的5个单词_【Python】统计文本中单词的出现次数前十的单词...

    代码: # 读取一个文本,并且统计文本中单词的出现次数 def read_file(): # 在windows环境中的编码问题,指定utf-8 with open('F:/python源码/实验区/0 ...

  6. python统计句子中单词个数_【python统计单词数量】作文写作问答 - 归教作文网

    如何用python统计一个txt文件中某个单词出现的次数 1.首先,定义一个变量,保存要统计的英文文章. 2.接着,定义两个数组,保存文章中的单词,以及各单词的词频. 3.从文章中分割出所有的单词,保 ...

  7. python单词个数统计_Python 统计文本中单词的个数

    1.读文件,通过正则匹配 def statisticWord(): line_number = 0 words_dict = {} with open (r'D:\test\test.txt',enc ...

  8. python统计有几个单词_统计文件中单词的个数---Shell及python版

    最近在看shell中有个题目为统计单词的个数,使用了awk功能,代码如下 #!/bin/bash if [ $# -ne ];then echo "Usage:basename $0 fil ...

  9. c语言统计输入文本不同字母单词数,统计文本中单词的个数

    ㈠ 统计一行文本的单词个数:输入一行字符,统计其中单词的个数.个单词之间用空格分隔,空格数可以是多个, 代码部分: #include int main() { int count=0; char te ...

最新文章

  1. 求有多少个数是这个数的约数
  2. Java浮点值拒绝服务漏洞危害分析
  3. 当我学完Python我学了些什么
  4. .NET程序员走向高端必读书单汇总
  5. (一)uboot的移植与制作
  6. [Dynamic Language] Python os
  7. TensorFlow:曼德布洛特(Mandelbrot)集合
  8. 基于余弦相似性的指纹匹配算法在WIFI室内定位上的应用(转)
  9. 第4讲 The Zend Framework MVC Architecture
  10. 清除电脑多余垃圾--清除垃圾.bat文件 附保姆级操作步骤
  11. php使用grpc(windows环境下)
  12. android 联机游戏平台,游聚平台/街机平台/主机联网/街机对战平台/网络街机
  13. 华为虚拟机服务器怎么使用教程,虚拟机装服务器教程
  14. 使用distpicker的简单测试页面
  15. Linux第五次学习笔记
  16. 利用matlab的SPM12功能核磁共振成像数据处理_Auditory fMRI data(二)
  17. 程序猿从不缺对象,想要随时可以new出来一个
  18. Python 从文件in162.txt中连续读入10个以磅为单位的重量值
  19. 十二星座匹配对象_12星座的最佳配对对象
  20. 内存条玄学之四槽插满就这么难么?

热门文章

  1. javaWEB(EL+JSTL实现购物车)
  2. Boss来了的条幅动画
  3. 视频编解码优化的几个概念
  4. JavaScript学习笔记(四)---闭包、递归、柯里化函数、继承、深浅拷贝、设计模式
  5. 防儿童高楼坠落 防护栏与安防设备齐上阵
  6. BCD和十进制互相转换——C实现
  7. OPPO可可软件商店推“免流量”下载活动
  8. 【FreeSwitch开发实践】死锁问题解决Over Session Limit 1000/Locked, Waiting on external entities
  9. 解决CentOS虚拟机开机黑屏卡死问题
  10. IT小常识---局域网---互联网---计算机