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

Python如何批量处理文件夹内所有txt文件并原地保存修改结果

Python文本处理脚本批量改造方案

核心改造点

  • 移除原代码硬编码的单文件输入输出路径,通过标准库os遍历指定文件夹下所有.txt格式的文本文件
  • 完全保留原处理逻辑:对每个文件的指定行按分号分割,将第25位元素移动到第7位位置,原第25位位置置空
  • 处理结果直接覆盖保存到原文件,不再输出到独立的新文件
  • 增加基础合法性校验,避免文件行数不足、字段数不足导致的运行报错
    注意:Python序列索引从0开始计数,原代码中index=1对应文件的第2行,line[24]对应分号分割后的第25个元素,line[6]对应第7个元素,改造代码完全对齐该逻辑

改造后完整代码

import os

# -------------------------- 可根据实际需求修改配置 --------------------------
TARGET_FOLDER = "./your_txt_dir"  # 替换为待处理txt文件所在的文件夹路径
PROCESS_LINE_INDEX = 1            # 待处理的行索引,默认1对应文件第2行
SOURCE_COL_INDEX = 24             # 待移动元素的索引,默认24对应第25位
TARGET_COL_INDEX = 6              # 元素移动目标位置索引,默认6对应第7位
FILE_ENCODING = "utf-8"           # 文件编码,若为gbk编码可修改为"gbk"
# --------------------------------------------------------------------------

def process_single_txt(file_path: str):
    # 读取原文件所有行
    with open(file_path, "r", encoding=FILE_ENCODING) as f:
        lines = f.readlines()
    
    # 校验文件行数是否满足处理要求
    if len(lines) <= PROCESS_LINE_INDEX:
        print(f"[跳过] {file_path}:文件行数不足,不存在待处理行")
        return
    
    # 分割待处理行
    deal_line = lines[PROCESS_LINE_INDEX].rstrip("\n\r")
    col_list = deal_line.split(";")
    
    # 校验字段数是否满足处理要求
    if len(col_list) <= SOURCE_COL_INDEX:
        print(f"[跳过] {file_path}:待处理行分号分割后字段数不足25个")
        return
    
    # 执行元素移动逻辑
    move_value = col_list[SOURCE_COL_INDEX]
    col_list[TARGET_COL_INDEX] = move_value
    col_list[SOURCE_COL_INDEX] = ""
    
    # 将修改后的行替换回内容列表
    lines[PROCESS_LINE_INDEX] = ";".join(col_list) + "\n"
    
    # 覆盖写入原文件
    with open(file_path, "w", encoding=FILE_ENCODING) as f:
        f.writelines(lines)
    print(f"[完成] {file_path}")

if __name__ == "__main__":
    # 遍历目标文件夹下所有条目
    for entry_name in os.listdir(TARGET_FOLDER):
        # 拼接完整路径
        entry_full_path = os.path.join(TARGET_FOLDER, entry_name)
        # 仅处理后缀为.txt的文件,跳过子文件夹
        if os.path.isfile(entry_full_path) and entry_name.lower().endswith(".txt"):
            process_single_txt(entry_full_path)

使用注意事项

  • 运行前先将TARGET_FOLDER配置项替换为实际存放待处理txt文件的文件夹路径,Windows系统路径写法示例:"D:/document/txt_files"
  • 若待处理txt文件为GBK/GB2312编码,将FILE_ENCODING配置项修改为对应编码即可避免乱码
  • 首次运行建议先备份原文件夹内的文件,避免误操作导致内容丢失
  • 若需要调整处理的行号、移动的字段位置,直接修改顶部配置项对应的值即可,无需改动核心逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:12:31