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

如何使用Python编辑txt文件多组内容并保留原有空格格式

Python实现TXT文件指定内容替换方案

核心实现逻辑

要在保留姓名与后缀间原有空格/制表符排版的前提下,将每行姓名后的任意内容替换为顺序数字,核心是精准拆分每行的三个部分:开头的姓名字段、姓名后的连续空白分隔符、待替换的原后缀内容,替换后缀后按原格式拼接即可,不需要手动调整间距。

完整代码

import re

def rewrite_target_txt(input_file: str, output_file: str):
    # 正则匹配行结构:(姓名非空内容)(中间空白字符)待替换的任意内容
    line_match_rule = re.compile(r'^(\S+)(\s+).*$')
    # 逐行读写文件,避免大文件占用过多内存
    with open(input_file, 'r', encoding='utf-8') as f_read, open(output_file, 'w', encoding='utf-8') as f_write:
        # 序号从1开始计数,和行顺序一一对应
        for line_num, line_content in enumerate(f_read, start=1):
            # 去除行尾原生换行符,后续统一加换行避免格式错乱
            pure_line = line_content.rstrip('\r\n')
            match_result = line_match_rule.match(pure_line)
            # 不符合格式的行(空行、无分隔符的行)直接原样写入,不做修改
            if not match_result:
                f_write.write(pure_line + '\n')
                continue
            name, origin_space = match_result.groups()
            # 按原格式拼接新行:姓名 + 原有空白 + 对应序号
            new_line = f"{name}{origin_space}{line_num}\n"
            f_write.write(new_line)

if __name__ == "__main__":
    # 替换为自己的文件路径即可,如果要覆盖原文件请提前做好备份
    rewrite_target_txt("your_original_file.txt", "modified_result.txt")

使用说明

  • 代码默认使用UTF-8编码读写文件,如果你的文件是其他编码(比如GBK),修改open函数里的encoding参数即可
  • 姓名和序号之间的所有空格、制表符会完全保留原文件的排版,不会出现间距错乱的问题
  • 序号严格按照文件内的行顺序从1开始生成,和原文件行一一对应
  • 空行、不符合「内容+空白+内容」格式的行会原样保留,不会被误修改

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 17:47:37