Python程序:统计文本文件中的单词数


在处理文本处理和分析任务时,通常需要统计文本文件中的单词数。目标是确定文件中存在的单词总数。Python 提供了几个模块和函数,可以高效有效地执行单词计数任务。

在本文中,我们将探讨使用 Python 编程从文本文件获取单词总数的不同方法。

方法

以下是统计文本文件单词数的步骤:

  • 打开文本文件 - 使用 open() 函数以读取模式打开文本文件。指定文件路径作为参数。

  • 读取文件内容 - 使用 read() 方法将文件的全部内容读取到字符串变量中。

  • 将内容分割成单词 - 将内容字符串分割成单词列表。我们可以使用 split() 方法或正则表达式模式 (\b\w+\b) 来分割内容。

  • 统计单词数 - 确定列表中的单词数。我们可以使用 len() 函数获取列表的长度。

  • 最后,返回单词计数。

在本文中,我们将使用以下文本文件作为输入。

使用 split() 方法

split() 是一个 Python 字符串方法,它根据指定的定界符将字符串分割成子字符串列表。split() 方法可以使用空格作为默认定界符将字符串分割成单词。

示例

这是一个统计文本文件单词数的示例。

def count_words(filename):
    try:
        with open(filename, 'r') as file:
            content = file.read()
            words = content.split()
            word_count = len(words)
            return word_count
    except FileNotFoundError:
        print(f"File '{filename}' not found.")
        return 0

# Provide the path of the text file
file_path = 'Example_text_file.txt'

# Call the function to count words
total_words = count_words(file_path)

print("Total number of words in the file: {}".format(total_words))

输出

File 'Example_text_file.txt' not found.
Total number of words in the file: 0

使用 collections 模块

在这种方法中,我们使用 collections 模块中的 Counter 类来统计文件中每个单词的出现次数。

Counter 对象提供了一个类似字典的结构,其中每个单词都是键,其对应的值表示文本中出现的次数。然后,我们使用 sum() 函数将所有值相加,以获得单词总数。

示例

在这个示例中,我们将使用 collections.Counter() 方法来统计文本文件中存在的单词数。

import collections

def count_words(filename):
    try:
        with open(filename, 'r') as file:
            word_count = collections.Counter(file.read().split())
            return sum(word_count.values())
    except FileNotFoundError:
        print(f"File '{filename}' not found.")
        return 0

# Provide the path of the text file
file_path = 'Example_text_file.txt'

# Call the function to count words
total_words = count_words(file_path)

print("Total number of words in the file: {}".format(total_words))

输出

File 'Example_text_file.txt' not found.
Total number of words in the file: 0

使用正则表达式

在这里,我们将使用 re 模块中的 re.findall() 函数,使用正则表达式模式从文件内容中提取所有单词。模式 \b\w+\b 匹配任何由单词边界包围的一个或多个单词字符(字母、数字或下划线)的序列。

findall() 函数返回在内容中找到的所有匹配项的列表。然后,我们确定列表的长度以获得单词总数。

示例

这是另一种使用 Python 中的正则表达式统计文本文件单词数的方法。

import re

def count_words(filename):
    try:
        with open(filename, 'r') as file:
            content = file.read()
            words = re.findall(r'\b\w+\b', content)
            word_count = len(words)
            return word_count
    except FileNotFoundError:
        print(f"File '{filename}' not found.")
        return 0

# Provide the path of the text file
file_path = 'Example_text_file.txt'

# Call the function to count words
total_words = count_words(file_path)

print(f"Total number of words in the file: {total_words}")

输出

File 'Example_text_file.txt' not found.
Total number of words in the file: 0

这些是使用 Python 编程统计文本文件单词数的不同方法。

更新于:2023年8月29日

5K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告