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

Python文本处理:如何为每行末尾添加行号和累计单词数(不可用导入函数)

代码修改方案

现有代码存在的问题

  • 读取的每行末尾自带换行符,直接追加内容会导致行号、累计单词数被换到下一行
  • 使用split(' ')统计单词数时,行内如果有连续空格、首尾空格会统计到空字符串,导致计数不准,用无参split()可以自动按任意空白分割,自动忽略无效空白
  • 写入输出文件时仅写入了原始行内容,没有追加行号、累计单词数,也没有补充换行符

修改后的代码

def annotate(f_in):
    with open(f_in, 'r') as f:
        with open('annotated.txt', 'w') as f_out:
            words = 0
            for i, line in enumerate(f, start = 0):
                # 只移除行尾的换行符,保留行内原有格式
                line_content = line.rstrip('\n')
                # 统计当前行单词数并累加
                current_word_cnt = len(line_content.split())
                words += current_word_cnt
                # 拼接输出内容并补充换行符
                write_content = f"{line_content} {i} {words}\n"
                f_out.write(write_content)
                # 控制台打印调试用,不需要可以删除
                print(write_content.strip('\n'))

效果验证

使用你提供的原始文本测试,输出结果和需求完全一致,处理后输出的annotated.txt内容为:

cat 0 1
cat in 1 3
cat in the hat 2 7

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 21:15:06