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

Python按单词数阈值合并文本文件行的代码问题修复

文件行拼接逻辑代码修复方案

原有代码的核心问题

  • 循环逻辑完全失效:while循环内写死break,每次仅拼接1行就强制退出,根本没有实现「单词数不足时持续读取后续行拼接」的需求
  • 分支逻辑错位:while...else的触发条件不符合预期,会重复追加行内容,导致结果列表出现重复文本、分段错误
  • 末尾内容丢失:外层for循环遍历完所有行后,临时缓存变量中存储的最后一段拼接内容没有被追加到结果列表,直接造成末尾行遗漏
  • 缺失空行过滤:没有对空白空行做跳过处理,无意义的空字符会干扰单词计数、污染拼接结果
  • 拼接格式错误:直接拼接行内容时没有补间隔空格,会出现上一行末尾单词和下一行开头单词连为一体的问题

修复后完整代码

# 逐行懒加载文件内容的生成器,大文件处理内存占用更低
def gen_file_reader(file_path):
    with open(file_path, encoding='utf-8') as file:
        for line in file:
            # 提前过滤纯空白行
            stripped_line = line.strip()
            if stripped_line:
                yield stripped_line

container = []  # 存储最终结果
lines = gen_file_reader('test_file.txt')
WORD_THRESHOLD = 20  # 单词数最小阈值
cache = ""  # 临时拼接缓存

for line in lines:
    # 拼接时补空格,避免单词粘连
    cache = f"{cache} {line}".strip()
    # 缓存内容单词数达标就追加到结果,清空缓存
    if len(cache.split()) >= WORD_THRESHOLD:
        container.append(cache)
        cache = ""

# 所有行遍历完成后,追加缓存中剩余的最后一段内容(不足阈值也必须存入,避免遗漏)
if cache:
    container.append(cache)

效果验证

  • 严格匹配需求规则:单行单词数达标直接存入结果,不足则持续拼接后续行直至满足阈值
  • 自动过滤全空白行,单词计数准确
  • 文件末尾剩余内容会被正常追加,无行遗漏问题
  • 行拼接时自动补间隔空格,无单词粘连、前后多余空白的格式问题
  • 运行后container前4项输出和给出的预期结果完全一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 09:16:10