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 编程统计文本文件单词数的不同方法。