20200917-2 词频统计

作业要求参见https://edu.cnblogs.com/campus/nenu/2020Fall/homework/11206

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

功能一重点难点:1、由于一开始没有头绪,不知道该使用什么语言来写更加方便,经过请教学长和我所掌握的语言的熟练程度最终选择用python语言来完成。

                             2、由于使用控制台和命令行输入和输出,所以要把.py文件转换成.exe文件,这就用到pyinstalle。

功能一实现代码介绍:先定义计算文件单词的函数,然后打开文件,利用read()读取文件全部内容,然后调用统计单词的函数。

def jisuanTotal(word):
    user_counters=Counter(word)
    total=0
    for user_counter in user_counters:
        total+=1
    print("total "+str(total)+" words\n")
    lsts=user_counters.most_common(10)

    for lst in lsts:
        print("%s   \t\t\t%d"%(lst[0],lst[1]))
        
def word_list(filename): 
    with open(filename,encoding='utf-8') as f: 
        content=f.read() 
        words=re.findall(r'[\w^-]+',content)

 

 

结果展示:

 

 

 

 

 

 

 

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

重点代码展示:首先打开文件,用read()方法读取文件全部内容,然后再使用功能一的函数对单词进行输出。功能二改进了功能一所没有的异常处理,文件不存在时输出文件名+does not exist.

def file_name(path): 
    path=path+'.txt'
    try:
        with open(path,encoding='utf-8') as f:
            content=f.read()
    except FileNotFoundError: 
        msg="The file"+path+"does not exist."
        print(msg)
    else:
        words=re.findall(r'[\w^-]+',content)
        jisuanTotal(words)

 

 

结果展示:

 

 

 

 

 

 

 

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

代码实现:首先输入存储有英文作品的文件名,然后判断是否为文件,os.path.splitext(“文件路径”)用于分离文件名与扩展名;默认返回(fname,fextension)元组


def file_floder(path): 
    dirs = os.listdir(path)
    for file in dirs:
        if os.path.isfile(file):  
            print(os.path.splitext(file)[0])
            with open(file, encoding='utf-8') as f:
                words = re.findall(r'[\w^-]+', f.read())
                jisuanTotal(words)
                print('----')

运行结果:

 

 

 

 

 4、功能四从控制台读入英文单篇作品,这不是为了打脸老五,而是为了向你女朋
友炫酷,表明你能提供更适合嵌入脚本中的作品(或者如她所说,不过是更灵活
的接口)。如果读不懂需求,请教师兄师姐,或者 bing: linux 重定向,尽管
这个功能在windows下也有,搜索关键词中加入linux有利于迅速找到。

 

由于不懂重定向,查阅资料后最终也没能解决

5、psp

 

 

 

 

 

6、coding net地址:https://e.coding.net/weichenaa/word/wordfrequency.git

     github地址:https://github.com/Wei-chenTF/word

 

posted @ 2020-09-23 18:25  魏琛  阅读(136)  评论(0编辑  收藏  举报