批量添加文本前后缀的脚本

wen 实用脚本 2

一键为文本添加前后缀的脚本实战指南

目录导读

  1. 为什么需要批量添加文本前后缀?
  2. 常见应用场景与痛点分析
  3. 三种主流脚本方案对比
  4. 手把手:Python脚本实现批量添加前后缀
  5. 进阶技巧:处理特殊字符与多文件批量操作
  6. 常见问题解答(FAQ)

为什么需要批量添加文本前后缀?

在日常办公、数据处理或内容运营中,我们经常面临“重复性字符串操作”的困扰,给1000个文件名统一添加日期前缀、为CSV表格中的每行数据加上固定标签、或者为小说章节标题批量添加序号后缀,手动逐条修改不仅耗时巨大,而且极易出错。

批量添加文本前后缀的脚本

批量添加文本前后缀的脚本,正是为了解决这类重复劳动而生,通过几行代码,就能让计算机在数秒内完成原本需要数小时的手工操作,无论是Python、Batch(Windows批处理)还是Shell脚本,都有成熟方案。


常见应用场景与痛点分析

场景1:文件重命名

  • 需求:将 report_01.pdfreport_02.pdf 批量改为 2025_report_01.pdf2025_report_02.pdf
  • 痛点:手动重命名100个文件至少30分钟,且容易漏改

场景2:数据清洗

  • 需求:Excel中有一列手机号,需要统一加上 +86 前缀
  • 痛点:2000行数据,复制粘贴耗时且易破坏原格式

场景3:批量生成邀请码/ID

  • 需求:生成 user_001user_100 的文本列表
  • 痛点:手动输入不仅慢,还可能因打字错误导致重复

场景4:批量替换HTML标签内容

  • 需求:将多个 <p>xxx</p> 段落改为 <p class="article">xxx</p>
  • 痛点:在代码编辑器中逐个替换效率低下

三种主流脚本方案对比

方案类型 适用平台 学习成本 效率 推荐指数
Python脚本 跨平台 低(基础语法即可) 极高
Windows批处理(.bat) 仅Windows 极低 中等
Shell脚本(.sh) Linux/Mac 中等

对于大多数办公用户和内容创作者,Python脚本是兼顾易用性与功能性的最佳选择,以下将详细拆解实现过程。


手把手:Python脚本实现批量添加前后缀

基础版:单文件逐行处理

def add_prefix_suffix(input_file, output_file, prefix="", suffix=""):
    with open(input_file, 'r', encoding='utf-8') as f:
        lines = f.readlines()
    with open(output_file, 'w', encoding='utf-8') as f:
        for line in lines:
            stripped = line.strip()
            if stripped:  # 跳过空行
                f.write(f"{prefix}{stripped}{suffix}\n")
            else:
                f.write(line)  # 保留空行结构

使用示例

  • 输入文件 names.txt 内容:Alice / Bob / Charlie
  • 调用:add_prefix_suffix("names.txt", "output.txt", "Hello_", "_2025")
  • 输出:Hello_Alice_2025 / Hello_Bob_2025 / Hello_Charlie_2025

进阶版:批量重命名文件

import os
def batch_rename_files(directory, prefix="", suffix="", extension=None):
    for filename in os.listdir(directory):
        if extension and not filename.endswith(extension):
            continue
        base, ext = os.path.splitext(filename)
        new_name = f"{prefix}{base}{suffix}{ext}"
        os.rename(
            os.path.join(directory, filename),
            os.path.join(directory, new_name)
        )
        print(f"Renamed: {filename} -> {new_name}")

注意事项

  • 建议先在测试文件夹运行,避免误操作损坏原文件
  • 支持过滤特定扩展名(如 .txt.jpg

进阶技巧:处理特殊字符与多文件批量操作

技巧1:避免文件名包含非法字符

在文件重命名时,Windows系统不允许文件名包含 \ / : * ? " < > | 等字符,建议加入校验:

import re
def sanitize_filename(name):
    return re.sub(r'[\\/*?:"<>|]', "_", name)

技巧2:配合正则表达式实现智能添加

只在包含数字的行末尾添加后缀:

import re
def add_suffix_conditional(input_lines):
    pattern = re.compile(r'\d+')
    return [f"{line.strip()}_有数字" if pattern.search(line) else line for line in input_lines]

技巧3:处理大量文件时的进度提示

from tqdm import tqdm
for file in tqdm(file_list, desc="处理文件中"):
    # 你的处理逻辑
    pass

技巧4:多文件合并前后缀

需同时操作多个文件时,可以结合 glob 模块:

import glob
for filepath in glob.glob("*.txt"):
    add_prefix_suffix(filepath, f"modified_{filepath}", "前缀_", "_后缀")

常见问题解答(FAQ)

Q1:我完全不懂编程,能用这个脚本吗?

A:完全可以!只需将上述代码复制到记事本,另存为 add.py,然后安装Python后双击运行,网上也有带图形界面的工具(如批量重命名工具),但脚本更加灵活且免费。

Q2:批量处理时如何预览修改效果?

A:建议先在测试文件夹或虚拟数据上运行,Python脚本中增加 --dry-run 参数,只打印修改结果而不实际执行:

if dry_run:
    print(f"Would rename: {filename} -> {new_name}")
else:
    os.rename(...)

Q3:遇到中文乱码怎么办?

A:脚本中 encoding='utf-8' 已处理大多情况,如果文件是GBK编码(常见于老旧Windows文档),请改为 encoding='gbk',不确定编码时,可使用 chardet 库自动检测。

Q4:能否实现“隔行添加”或“按条件添加”?

A:当然可以,在 for line in lines 循环中,加入 if 判断条件 即可,例如只处理奇数行:

for idx, line in enumerate(lines, 1):
    if idx % 2 != 0:
        # 添加前后缀
    else:
        # 保持原样

Q5:这些脚本是否会修改原文件?

A:基础版默认输出到新文件,不修改原文件,而 batch_rename_files 函数会直接修改原文件名,所以请谨慎使用,建议保留备份。

Q6:移动端或云端能使用这些脚本吗?

A:移动端需安装Termux(Android)或a-Shell(iOS),同样可以运行Python,云端比如可以依赖在线Python环境(如Google Colab),上传文件后在线运行脚本即可。


批量添加文本前后缀的脚本,是提升数据处理效率的“隐形助手”,从基础的Python for 循环到进阶的正则匹配,再到多文件并发处理,掌握这些技能后,你将告别枯燥的手动操作,建议读者先在自己电脑上搭建Python环境,用本文的示例代码试运行一次,就能直观感受到自动化带来的效率飞跃。

如需更复杂的需求(如根据Excel数据动态生成前缀),欢迎在评论区留言讨论,在数字化工作中,善用脚本,就是为自己每天多赚两小时。

抱歉,评论功能暂时关闭!