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

使用Python批量重命名并迁移Linux服务器上的CSV文件

解决方案

以下是实现需求的Python代码,注释清晰易懂,适配新手使用:

import os
import shutil
from datetime import date

# 替换为你的源文件夹实际路径(Linux下用/分隔,比如/home/user/csv_files)
source_dir = "/path/to/source/folder"
# 替换为你的目标文件夹实际路径
dest_dir = "/path/to/destination/folder"

# 获取当日日期,格式为yyyymmdd(例如20240520)
today_date = date.today().strftime("%Y%m%d")

# 自动创建目标文件夹,已存在则不报错
os.makedirs(dest_dir, exist_ok=True)

# 遍历源文件夹内的所有文件
for filename in os.listdir(source_dir):
    # 仅处理CSV格式文件
    if filename.endswith(".csv"):
        # 从右侧拆分文件名,最多拆2次——避免entity_name包含下划线时拆分出错
        parts = filename.rsplit("_", 2)
        # 校验文件名是否符合预期格式
        if len(parts) == 3:
            entity_name = parts[0]
            # 构造新文件名
            new_filename = f"{entity_name}_{today_date}.csv"
            # 拼接完整文件路径
            src_full_path = os.path.join(source_dir, filename)
            dest_full_path = os.path.join(dest_dir, new_filename)
            # 完成迁移+重命名操作
            shutil.move(src_full_path, dest_full_path)
            print(f"处理完成: {filename} → {new_filename}")
        else:
            print(f"跳过不符合格式的文件: {filename}")

关键细节说明

  • 兼容含下划线的entity_name:用rsplit("_", 2)从右侧拆分2次,确保无论entity_name是否包含下划线,都能正确分离出后面的日期、时间部分。
  • 自动处理目标文件夹:os.makedirs(dest_dir, exist_ok=True)会自动创建目标文件夹,已存在时不会抛出错误。
  • 迁移+重命名一步完成:shutil.move()同时实现文件迁移和重命名,无需先重命名再移动。
  • 格式校验防报错:增加文件名结构检查,跳过不符合格式的文件并打印提示,避免程序崩溃。

使用提示

  1. 务必替换代码中的source_dir和dest_dir为你实际的Linux路径。
  2. 运行前建议备份源文件,防止操作失误丢失数据。
  3. 若只需原地重命名(不迁移到新文件夹),只需将dest_full_path改为os.path.join(source_dir, new_filename),并删除创建目标文件夹的代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:10:39