20180918-1 词频统计
此作业的要求见:[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2126]
一、项目功能的重点、难点 及执行效果
1.(1)功能1的执行效果截图(功能未实现,无截图)
遗憾没能实现功能一,因为在我通过命令行参数成功执行功能2和功能3之后,没有想明白如何通过控制台执行功能一。
我只能在pycharm平台上实现这个功能。
(2)在构思功能1中已解决的问题
a.要实现功能1,字典和列表的运用是最重要的部分,这些部分已实现
b.其次是对单词的区分,这里要将文本文档中的标点用空格代替,然后用split函数进行分割,统计单词个数以后将其插入到空字典中
c.可以用parseText(.lower())函数将所有单词小写
(3)未解决的问题
无法通过控制台输入
(4)功能1的部分代码
1 def parseText(text): 2 for ch in "~!@#$%^&*(()_+-={}[]<>,.?/;':\"|\\": 3 text = text.replace(ch, " ") 4 words = text.split() 5 return words
1 words = parseText(name.lower()) 2 word_count = {} 3 for word in words: 4 if word in word_count: 5 word_count[word] += 1 6 else: 7 word_count[word] = 1 8 total += 1 9 items = [(count, word) for (word, count) in word_count.items()] 10 items.sort(reverse=True) 11 print "total:", total 12 print '' 13 i = 0 14 for item in items: 15 print item[1], item[0] 16 i += 1 17 if i >= 10: 18 break
2.(1)功能2的执行效果截图
(2)功能2中的重点和难点
a.在功能一的基础上,实现这一功能需要使用open()函数和read()函数对从键盘录入的文件名进行读取
b.实现这一功能需要使用命令行参数,需要导入sys模块
c.实现这一功能还需os.path.isfile()函数判断从键盘录入的字符串是否为文件名
(3)实现功能2的主要代码
1 name = sys.argv[1] 2 if os.path.isfile(name): 3 novel = open(name) 4 text = novel.read() 5 words = parseText(text.lower())
3.(1)功能3的执行效果截图
(2)功能3中的重点和难点
a.实现这一功能同样需要使用命令行参数,仍需要导入sys模块
b.实现这一功能需os.path.isdir()函数判断从键盘录入的字符串是否为目录名
c.需要使用os.chdir()函数将当前目录改为从键盘输入的文件夹
d.需要使用glob.glob("*.txt")函数遍历当前目录下所有的以.txt为后缀的文件
(3)实现功能3的主要代码
1 elif os.path.isdir(name): #判断输入的字符串是否为目录 2 os.chdir(name) #更改当前目录 3 files = glob.glob("*.txt") #遍历当前目录下所有的文本文档 4 for file in files: 5 total = 0 6 novel = open(file) 7 text = novel.read() 8 words = parseText(text.lower())
4.(1)功能4的执行效果截图(功能未实现,无截图)
(2)功能4未解决的问题
a.参见其他同学上交的作业,我认为没实现这个功能的原因在于未理解重定向的概念和使用方法。对于重定向的概念,我是在最初的两天进行学习的,由于对重定向理解的不好,没有将其灵活运用到这个功能中,比较遗憾。
b.第二问题是无法正确使用命令行参数,无法从控制台输入作品名。
二、PSP
功能实现及测试PSP
三、代码及版本控制
本项目地址为:https://coding.net/u/xumonv/p/word_count/git
使用的git客户端为:tortoisegit