python统计文本文件的字数

本文提供了一段Python代码,用于统计指定文本文件中各单词出现的次数,并按频率排序输出。该程序支持去除标点符号并能显示单词净个数。

s

转的,出处找不到了。

还有这个也不错:https://code.google.com/p/pyzh/


统计文本文件的字数,从当前目录下的file.txt取文件

# -*- coding: GBK -*-
import string
import sys
reload(sys)

def compareItems((w1,c1), (w2,c2)):
    if c1 > c2:
        return - 1
    elif c1 == c2:
        return cmp(w1, w2)
    else:
        return 1

def main():
    fname = "file.txt"
    
    try:
        text = open(fname,'r').read()
        text = string.lower(text)
    except:
        print "\nfile.txt is not exist!!! or There is a R/W error! "
        sys.exit()

    for ch in '!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~':
        text = string.replace(text, ch, ' ')
    words = string.split(text)

  
    counts = {}
    for w in words:
        counts[w] = counts.get(w,0) + 1
    
    n = input("\n输入要统计的top单词数:")
    items = counts.items()
    
    items.sort(compareItems)
    
    max = len(items)
    print "\n单词总计:" + str(len(words))
    print "单词净个数(已去重):" + str(max)
    print "\n"
    if n > max:
        n = max
    for i in range(n):
        print "%-10s%5d" % items[i]

if __name__ == '__main__': 
    main()





s


### Python 实现对 TXT 文件中英文文本字数统计 要实现对 TXT 文件中英文文本字数统计,可以利用 Python 的内置功能以及第三方库完成这一任务。以下是具体方法: #### 方法概述 通过打开目标文件并逐行读取其内容,可将每行的内容拆分为单词列表,并累加这些单词的数量以获得总字数。此过程可以通过 `split()` 函数轻松实现[^1]。 #### 示例代码 以下是一个完整的代码示例,用于统计给定 TXT 文件中的英文单词总数: ```python def count_words(filename): try: with open(filename, 'r', encoding='utf-8') as file_object: # 打开文件 contents = file_object.read() # 读取全部内容 except FileNotFoundError: print(f"The file {filename} does not exist.") # 处理文件不存在的情况 else: words = contents.split() # 将内容按空格分割成单词列表 num_words = len(words) # 统计单词数量 print(f'The file {filename} has about {num_words} words.') # 输出结果 # 测试函数 file_name = 'example.txt' # 替换为实际文件名 count_words(file_name) ``` 上述代码实现了如下功能: 1. 使用 `with` 关键字安全地打开文件。 2. 利用异常处理机制捕获可能发生的 `FileNotFoundError` 错误。 3. 调用字符串对象的 `split()` 方法将文本按照空白符分隔为多个单词[^4]。 4. 计算单词列表长度得到最终的单词总数。 #### 注意事项 如果需要忽略标点符号的影响,则可以在统计之前先清理数据。例如,移除所有的标点符号后再进行统计[^2]。这通常涉及正则表达式的应用或者简单的替换操作。 #### 清洗数据后的改进版代码 为了更精确地统计有效单词数目,下面提供了一个经过优化的数据清洗版本: ```python import string def count_cleaned_words(filename): try: with open(filename, 'r', encoding='utf-8') as f: content = f.read() translator = str.maketrans('', '', string.punctuation) # 创建翻译表去除所有标点 cleaned_content = content.translate(translator).lower() # 去掉标点并将字母转为小写 word_count = len(cleaned_content.split()) # 分割并计算词数 print(f"After cleaning punctuation and converting to lowercase, the file {filename} contains approximately {word_count} words.") except Exception as e: print(e) # 测试改进函数 clean_file_name = 'sample_text.txt' count_cleaned_words(clean_file_name) ``` 该程序不仅能够正确统计不含标点干扰的真实单词量,还统一转换成了小写字母形式以便于后续进一步分析[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值