首页 > 其他 > 详细

20180918-1 词频统计

时间:2018-09-24 23:10:57      阅读:230      评论:0      收藏:0      [点我收藏+]

作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2126

作业代码地址:https://git.coding.net/onion102983/cipintongji.git 代码为wf.py文件用python语言编码

一.功能一的重点难点

1.如何打开文件

用f = open(path, encoding=‘utf-8‘)接收文件路径并传入

2.读取文本内容,把大写字母转化为小写避免因单词首字母大小写不同区分成不同的单词

 利用read()读取文本内容,lower()把所有大写单词转化为小写单词

3.如何区分单词

通过正则表达式用re.findall()生成列表

4.统计个单词并计数

用collections.Counter对象统计单词的计数并用most_common(n)方法返回计数值最大的n个元素的元组列表

5.控制台输入

利用Pyinstaller和Pywin32执行命令Pyinstaller.py -f wf.py将Python脚本(.py)转换为可执行文件(.exe)

二.功能一代码片段

 1     f = open(path, encoding=utf-8)
 2     words = re.findall(r\w+, f.read().lower())
 3     collect = collections.Counter(words)
 4     num = 0
 5     for i in collect:
 6         num += 1
 7     print(total %d words\n % num)
 8     result = collect.most_common(10)
 9     for j in result:
10         print(%-8s%5d % (j[0], j[1]))

三.功能一执行效果截图

技术分享图片

四.功能二的重点难点

1.如何区分-s -test.txt和不带-s .txt的参数

利用参数sys.argv[1] 是否等于 ‘-s‘来判断执行功能一还是功能二

2.传入参数后如何为打开文件open()内生成有效的路径参数

如果命令行参数带有‘-s‘的传入sys.argv[2] 作为open的路径参数不带的则传入sys.argv[1] 并且拼入字符串‘.txt‘作为参数

五.功能二代码片段

 1     if sys.argv[1] == -s:
 2         doCount(sys.argv[2])
 3     else:
 4         doCount(sys.argv[1])
 5 
 6 
 7     s = .txt
 8     if s in accept:
 9         path = accept
10     else:
11         path = accept + .txt

六.功能二执行效果截图

技术分享图片

七.功能三的重点难点

1.如何判断是否为文件夹,如果是则遍历文件

用os.path.isdir()判断是否为文件夹利用for循环遍历里面文件

2.如何判断是否为文件如果是则执行词频统计并输出

用os.path.isfile()判断是否为文件在调用定义好的词频统计函数进行输出

 

八.功能三代码片段

1     elif os.path.isdir(sys.argv[1]):
2         fileFindAndCount(sys.argv[1])
3 
4 
5 def fileFindAndCount(path1):
6     files = os.listdir(path1)
7     for file in files:
8         if os.path.isfile(file):
9            doSomeFileCount(file)

九.功能三执行效果截图

技术分享图片

十.功能四

十一.psp

psp阶段表格

 

20180918-1 词频统计

原文:https://www.cnblogs.com/nenusoft/p/9696784.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!