You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将大型文本文件中的单词提取并存储到list中

大文本文件单词提取实现方案

核心逻辑

针对整本书量级的大文件,优先采用逐行读取的处理方式,避免一次性加载全部内容导致内存溢出,搭配正则表达式匹配单词边界自动过滤非单词字符。

基础实现(结果直接存入List)

使用Python标准库即可实现,无需安装第三方依赖:

import re

def extract_words_to_list(file_path, case_sensitive=False, support_special_word=True):
    word_list = []
    # 可根据需求调整正则匹配规则
    if support_special_word:
        # 匹配带撇号、连字符的合法英文单词,例如don't、mother-in-law
        pattern = re.compile(r"\b[a-zA-Z]+(?:['-][a-zA-Z]+)*\b")
    else:
        # 仅匹配纯字母组成的单词
        pattern = re.compile(r"\b[a-zA-Z]+\b")

    with open(file_path, mode='r', encoding='utf-8', errors='ignore') as f:
        for line in f:
            # 不区分大小写时统一转为小写
            if not case_sensitive:
                line = line.lower()
            # 提取当前行所有匹配的单词
            line_words = pattern.findall(line)
            word_list.extend(line_words)
    return word_list

# 调用示例
target_word_list = extract_words_to_list("你的文件路径.txt")

进阶优化(超10G级超大文件适用)

如果文件体积远超可用内存,可使用生成器模式按需读取单词,无需一次性把所有单词存入List:

def extract_words_generator(file_path, case_sensitive=False, support_special_word=True):
    if support_special_word:
        pattern = re.compile(r"\b[a-zA-Z]+(?:['-][a-zA-Z]+)*\b")
    else:
        pattern = re.compile(r"\b[a-zA-Z]+\b")

    with open(file_path, mode='r', encoding='utf-8', errors='ignore') as f:
        for line in f:
            if not case_sensitive:
                line = line.lower()
            yield from pattern.findall(line)

# 调用示例,迭代遍历所有单词
for word in extract_words_generator("你的超大文件路径.txt"):
    # 此处可按需处理单个单词
    pass

参数说明

  • file_path:待处理的文本文件本地路径
  • case_sensitive:是否区分大小写,默认False所有单词统一转为小写
  • support_special_word:是否支持匹配带撇号、连字符的特殊英文单词,默认开启

内容的提问来源于stack exchange,提问作者Dolos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 04:00:02