求Python统计英文文件内单词个数的思路,python英文,感谢微博上@刘鑫-Mar


感谢微博上@刘鑫-MarsLiu的TAG每天一个小程序。 你会如何实现上述题目的要求?

#!/usr/bin/env python  # -*- coding: utf-8 -*-  """ python实现任一个英文的纯文本文件,统计其中的单词出现的个数、行数、字符数 """  file_name = "movie.txt"  line_counts = 0  word_counts = 0  character_counts = 0  with open(file_name, 'r') as f:      for line in f:          words = line.split()          line_counts += 1          word_counts += len(words)          character_counts += len(line)  print "line_counts ", line_counts  print "word_counts ", word_counts  print "character_counts ", character_counts

以上代码,有哪些改进的地方?如何改进才更加pythonic?

python有1个collections库可以解决你这个问题

#!/usr/bin/python# 这么着,您看您乐意不?import refile_name = 'test.txt'lines_count = 0words_count = 0chars_count = 0words_dict  = {}lines_list   = []with open(file_name, 'r') as f:    for line in f:        lines_count = lines_count + 1        chars_count  = chars_count + len(line)        match = re.findall(r'[^a-zA-Z0-9]+', line)        for i in match:            # 只要英文单词,删掉其他字符            line = line.replace(i, ' ')        lines_list = line.split()        for i in lines_list:            if i not in words_dict:                words_dict[i] = 1            else:                words_dict[i] = words_dict[i] + 1print 'words_count is', len(words_dict)print 'lines_count is', lines_countprint 'chars_count is', chars_countfor k,v in words_dict.items():    print k,v

编橙之家文章,

评论关闭