sxy504

导航

孙晓宇-20180912-3 词频统计

此作业的要求参见[https://edu.cnblogs.com/campus/nenu/2019fall/homework/6583]

代码:https://e.coding.net/sxy504/cipin.git

以下均是我总结出的对我而言的重难点:(1).py文件转化为.exe文件(2)python打开文件;(3)将文件中的标点等特殊符号去掉;(4)统计每个单词的频率并存放在字典;(5)文件数量的查找及文件路径的判断等。

功能1 小文件输入。 为表明程序能跑,结果真实而不是迫害老五,请他亲自键盘在控制台下输入命令。

代码:

def rd_file(xgc):
    try:
        f = open(xgc, 'r')
    except IOError as s:
        print(s)
        return None
    bf = f.read()
    f.close()
    stat(bf)
def stat(bf):
    if bf:
        wd_fd = {0}
        bf = bf.lower()
        for i in '!"#$%^&*()_+-=~`:;{}[]\|<>,.?/':
            bf = bf.lower().replace(i, " ")
        wds = bf.strip().split()
        a = 0
        a += len(wds)
        print("a:"+str(a))
        for wd in wds:
            wd_fd[wd] = 1 + wd_fd.get(wd, 0)
        ep(wd_fd)

运行结果:

功能2 支持命令行输入英文作品的文件名,请老五亲自录入。

def reg(rec):
    i = '.txt'
    if i in rec:
        w = rec
    else:
        w = rec + '.txt'
    f = open(w, 'r')
    bf = f.read()
    f.close()
    stat(bf)
def ep(wd_fd):
    if wd_fd:
        sorted_word_freq = sorted(wd_fd.items(), key=lambda v: v[1], reverse=True)
        for item in sorted_word_freq[:10]: 
            #print(item[0], item[1])
            print('%-8s%5d' % (item[0], item[1]))

功能3 支持命令行输入存储有英文作品文件的目录名,批量统计。

代码:

def flnub(x):   
    print(x)
    a = open(x, 'r')
    b = a.read()
    a.close()
    stat(b)def felt(p):
    fs = os.listdir(p) 
    for f in fs:
        if os.path.isfile(f): 
           flnub(f)

执行结果:

   

功能4还未实现,随着之后的学习争取可以完成

PSP:

 

 

posted on 2019-09-18 09:39  sxy504  阅读(180)  评论(2编辑  收藏  举报