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

如何用Python在Windows 10中批量移动CSV文件并处理重名

实现方案

核心思路

  1. 遍历E盘所有子目录,筛选出.csv格式文件
  2. 检查目标目录是否存在,不存在则自动创建
  3. 对每个待移动文件,生成不重复的目标文件名(重名时添加_数字后缀)
  4. 执行文件移动操作

完整代码

import os
import shutil

# 配置路径
SOURCE_DIR = "E:\\"
TARGET_DIR = "D:\\CSV_Files"

# 创建目标目录(如果不存在)
os.makedirs(TARGET_DIR, exist_ok=True)

# 遍历E盘所有文件
for root, dirs, files in os.walk(SOURCE_DIR):
    for file in files:
        # 筛选CSV文件(不区分大小写)
        if file.lower().endswith(".csv"):
            # 源文件完整路径
            source_path = os.path.join(root, file)
            # 拆分文件名和扩展名
            file_name, ext = os.path.splitext(file)
            # 初始目标文件名
            target_file = file
            target_path = os.path.join(TARGET_DIR, target_file)
            # 计数器,用于生成唯一后缀
            count = 2
            
            # 循环检查文件名是否已存在,直到找到可用的
            while os.path.exists(target_path):
                target_file = f"{file_name}_{count}{ext}"
                target_path = os.path.join(TARGET_DIR, target_file)
                count += 1
            
            # 执行移动操作
            shutil.move(source_path, target_path)
            print(f"已移动: {source_path} -> {target_path}")

关键细节说明

  • 不区分大小写的CSV筛选:用file.lower().endswith(".csv"),避免漏检.CSV、.Csv等格式的文件
  • 安全的文件名生成:通过循环递增计数器,确保每次都能找到唯一的文件名,不会出现重复覆盖
  • 目录自动创建:os.makedirs(TARGET_DIR, exist_ok=True)会自动创建目标目录,无需手动提前创建
  • 路径兼容性:用os.path.join拼接路径,适配Windows系统的路径分隔符

常见问题排查

  • 如果出现权限错误:确保Python进程有访问E盘文件和写入D盘目录的权限
  • 如果遍历速度慢:E盘文件较多时,遍历会需要一定时间,耐心等待即可
  • 如果特殊字符文件名处理异常:Windows文件名支持的特殊字符都能正常处理,无需额外编码转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 01:38:13