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

如何批量替换多个S-n.txt文件指定文本并保留原文件名?

批量替换S-n.txt文件文本的解决方案

问题回顾

你需要批量替换S-1.txt到S-29.txt中的指定文本,但运行单文件代码时出现以下错误:

Traceback (most recent call last): File "c:/Users/lenovo/Documents/ctcs/Python/Untitled-2.py", line 11, in with open(r'S-1', 'r') as file: FileNotFoundError: [Errno 2] No such file or directory: 'S-1'


先解决「文件找不到」错误

这个错误的两个核心原因:

  • 代码里写的打开路径是S-1,但实际文件名是S-1.txt,漏掉了*.txt后缀*
  • 目标文件不在Python脚本的当前工作目录下

快速修复单文件错误的两种方式:

  • 同目录放置:把S-1.txt和Python脚本放在同一个文件夹,同时把代码里的r'S-1'改成r'S-1.txt'
  • 绝对路径:如果文件不在脚本目录,直接写完整路径,比如r'C:/Users/lenovo/Documents/ctcs/S-1.txt'

批量处理1-29号文件的完整代码

下面的代码会自动遍历所有目标文件,替换指定文本后保留原文件名,同时加入异常处理避免单个文件出错导致程序崩溃:

# 定义要搜索和替换的文本
search_text = "opt freq"
replace_text = "LAN2DZ"

# 循环处理S-1到S-29的txt文件
for n in range(1, 30):
    filename = f"S-{n}.txt"
    try:
        # 读取文件内容(指定utf-8编码避免字符乱码)
        with open(filename, 'r', encoding='utf-8') as file:
            file_content = file.read()
        
        # 执行文本替换
        updated_content = file_content.replace(search_text, replace_text)
        
        # 将替换后的内容写回原文件
        with open(filename, 'w', encoding='utf-8') as file:
            file.write(updated_content)
        
        print(f"✅ 成功处理:{filename}")
    except FileNotFoundError:
        print(f"⚠️ 警告:未找到文件 {filename},已跳过")
    except Exception as e:
        print(f"❌ 处理 {filename} 时出错:{str(e)}")

print("\n批量替换操作完成!")

代码关键细节:

  • 使用range(1, 30)生成1到29的序号,通过f-string快速拼接文件名
  • 加入try-except异常捕获,确保个别文件异常不影响整体批量任务
  • 指定encoding='utf-8',避免中文或特殊字符出现编码错误
  • 实时打印处理状态,方便跟踪进度和排查问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 08:45:51