zoukankan      html  css  js  c++  java
  • 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
    ")
        lsts=user_counters.most_common(10)
    
        for lst in lsts:
            print("%s   			%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

  • 相关阅读:
    (转载)delphi文件流
    一个不敢妄称自己是程序员的半拉子编码员的随想
    Xamarin.iOS使用极光JPush进行推送
    Xamarin.IOS问题记录——项目属性里IOS Bundle Signing 配置文件选项没有对应的配置文件选择
    Xamarin问题记录
    Unity3D笔记
    C#Xml To Class生成器
    WPF Mahapps.Metro 设置主题样式
    WPF画N角芒星,正N角星
    WPFPath素材
  • 原文地址:https://www.cnblogs.com/weichenaa/p/13702620.html
Copyright © 2011-2022 走看看