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

如何用Python3给文件每行的开头、中间和末尾追加文本并格式化?

我来帮你搞定这个文本格式转换的问题!既然已经清理掉无用字符了,接下来的每行文本格式调整其实用两种常用工具就能轻松搞定,针对你的需求,我给你准备了两种方案:

方案1:用sed命令行快速处理(适合Linux/macOS/WSL环境)

sed是处理单行文本的利器,一行命令就能完成转换。假设你的源文件叫input.txt,想要输出到output.txt,直接执行下面的命令:

sed -E 's/^(\S+) (\S+) (\S+) \S+$/<option label="\1 \2 \3" value="\2"><\/option>/' input.txt > output.txt

命令解释:

  • -E:启用扩展正则表达式,让括号不用额外转义,写起来更直观
  • ^(\S+) (\S+) (\S+) \S+$:匹配每行的结构,把行拆成4个部分:
    • \1 对应第一个字段(比如示例里的DMA)
    • \2 对应第二个字段(示例里的123,也就是我们需要的value值)
    • \3 对应第三个字段(示例里的USA)
    • 最后一个\S+是没用的第四个字段,直接忽略
  • 替换部分把这三个字段组合成label的内容,用\2作为value,再包裹上你需要的<option>标签
方案2:用Python脚本处理(更灵活,适合后续调整)

如果你需要更灵活的逻辑(比如后续可能调整字段位置、处理空行等),Python脚本会更合适。下面是一个完整的脚本:

# 读取源文件内容
with open('input.txt', 'r', encoding='utf-8') as infile:
    lines = infile.readlines()

# 生成转换后的内容并写入新文件
with open('output.txt', 'w', encoding='utf-8') as outfile:
    for line in lines:
        # 去掉每行首尾的空白字符(包括换行符)
        cleaned_line = line.strip()
        # 跳过空行
        if not cleaned_line:
            continue
        # 按空格拆分每行成字段列表
        parts = cleaned_line.split()
        # 确保字段数量足够(避免报错)
        if len(parts) >= 3:
            # 提取需要的内容:value是第二个字段,label是前三个字段的组合
            value = parts[1]
            label = ' '.join(parts[:3])
            # 拼接成目标格式的行
            formatted_line = f'<option label="{label}" value="{value}"></option>\n'
            outfile.write(formatted_line)

脚本优势:

  • 自动跳过空行,避免生成无效的<option>标签
  • 用split()拆分字段,不管字段之间有多少个空格都能正确处理
  • 如果后续需求变化(比如label需要包含更多字段),只需要修改parts[:3]为parts[:4]这类简单调整就行
  • 代码可读性高,后续维护起来更方便

两种方案都能处理你那近100行的内容,选你顺手的工具就行!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:36:55