• 20170512 Python练习册0004统计英文的纯文本文件的单词出现的个数


    #!/usr/bin/env python
    # -*-coding:utf-8-*-

    # 第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数
    from collections import Counter
    import re

    def creat_list(filename):
    data_list = []
    with open(filename,'r',encoding= 'utf-8') as f:#打开文件,encoding=‘utf-8',不然报UnicodeDecodeError
    for line in f:#循环每一个字母
    content = re.sub(r'[-,]|d|?|:|"|!|.|/|', '', line)#利用正则替换掉数字,字符等,替换为空格
    print(content)#打印看一下是否替换完了
    data_list.extend(content.strip().split(' '))#删除空白符(包括' ',' ',' ',' '),并以' '空格来切割生成的字符串
    #print(data_list)#打印一遍生成的列表
    return data_list
    def wc(fileneme):
    print(Counter(creat_list(fileneme)))#调用creat_list函数处理文件,并用Counter计数
    if __name__=='__main__':
    filename = 'F:pythonPython练习册Walden.txt'
    wc(filename)

    需要用到的知识有:
    # split(pattern,string,maxsplit=0,flag=0
    # split根据匹配到的字符串来分割字符,返回分割字符串组成的列表
     
    import re
    str4 = 'imooc:C C++ Java Python'
    info_split1 = re.split(r':| ',str4)#将字符串str4 按:或者空格 进行分割
    print(info_split1)
     
    str5 = 'imooc:C C++ Java Python,C#'
    info_split2 = re.split(r':| |,',str5)
    print(info_split2)#按照冒号: 空格 或者逗号,进行分割成列表
     

    Counter

    Counter是一个简单的计数器,例如,统计字符出现的个数:

    >>> from collections import Counter
    >>> c = Counter()
    >>> for ch in 'programming':
    ...     c[ch] = c[ch] + 1
    ...
    >>> c
    Counter({'g': 2, 'm': 2, 'r': 2, 'a': 1, 'i': 1, 'o': 1, 'n': 1, 'p': 1})
    

    Counter实际上也是dict的一个子类,上面的结果可以看出,字符'g''m''r'各出现了两次,其他字符各出现了一次。

  • 相关阅读:
    数据持久化的基础知识
    svn常用命令
    关于SVN 目录结构
    linux查看CPU信息
    一个服务器上启动两台tomcat
    centos6.0 配置SVN
    mysql插入表情
    MAC 安装 PIL
    安装freetype
    Hadoop基本文件命令
  • 原文地址:https://www.cnblogs.com/Jiang190/p/6845973.html
Copyright © 2020-2023  润新知