Python练习题4

第 0004 题:任一个英文的纯文本文件,统计其中的单词出现的个数。

解题:字符串分词,英文的分词最常见的是按空格切分,不过这样容易将标点符号算进单词中,也可以用正则匹配。

# -*- coding: utf-8 -*-

import re

def count(filepath):
    f = open(filepath, 'rb')
    s = f.read()
    #正则匹配的方式,这里只是演示,所以连体单词会分为两个单词
    words = re.findall(r'[a-zA-Z0-9]+', s)
    #按空格切分,这样做会将标点符号算进单词中  
    #words = s.replace('\r\n',' ').split()
    print words
    return len(words)

if __name__ == '__main__':
    num = count('test.txt')
    print num

#下面两条命令,第一条是在Linux终端下直接运行的,命令的作用是cat(查看)文件,文件内容通过管道符给python脚本执行,首先按空格分词,再set(去重)再sort(排序)再join(组合)
#cat filename | python -c ‘import sys; print(”“.join(sorted(set(sys.stdin.read().split()))))’
#下面这条命令是在windows系统cmd下运行的,执行结果与上面题意要求一致
#type test.txt | python -c "import sys; print(len(sys.stdin.read().split()))"



你可能感兴趣的:(Python练习题4)