如何用Python实现任一个英文的纯文本文件,统计其中的单词出现的个数?

发布于 2022-08-26 15:41:07 字数 614 浏览 17 评论 0

感谢微博上@刘鑫-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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一世旳自豪 2022-09-02 15:41:07
#!/usr/bin/python

# 这么着,您看您乐意不?

import re

file_name = 'test.txt'

lines_count = 0
words_count = 0
chars_count = 0
words_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] + 1

print 'words_count is', len(words_dict)
print 'lines_count is', lines_count
print 'chars_count is', chars_count

for k,v in words_dict.items():
    print k,v
原谅我要高飞 2022-09-02 15:41:07

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文