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

Python实现Excel文件复制(非剪切):从源目录克隆至目标目录

解决Excel文件复制(保留源文件)的问题

嘿,我得先纠正你一个关键的小误解——shutil.copy()完全不会移动源文件!它的核心作用就是复制文件,执行完后源文件会好好留在源目录里,你大概率是把它和shutil.move()搞混了,后者才是负责移动/剪切文件的操作。

下面给你几种靠谱的实现方法,都能满足“保留源文件,复制到目标目录”的需求:

方法1:基础文件复制(shutil.copy)

这是最直接的方式,适合单个Excel文件的复制:

import shutil
import os

# 替换成你的源文件路径和目标目录
source_excel = r"D:\source_folder\data.xlsx"
target_folder = r"D:\target_folder"

# 先确保目标目录存在,不存在就自动创建
os.makedirs(target_folder, exist_ok=True)

# 执行复制,源文件会保留在原路径
shutil.copy(source_excel, target_folder)

方法2:保留文件元数据的复制(shutil.copy2)

如果你需要保留Excel文件的元数据(比如创建时间、修改时间、权限等),推荐用shutil.copy2,用法和copy几乎一致:

shutil.copy2(source_excel, target_folder)

方法3:批量复制目录下所有Excel文件

如果要复制源目录里所有的Excel文件(.xls和.xlsx格式),可以用循环遍历实现:

import shutil
import os

source_dir = r"D:\source_folder"
target_dir = r"D:\target_folder"

os.makedirs(target_dir, exist_ok=True)

# 遍历源目录下的所有文件
for file_name in os.listdir(source_dir):
    # 筛选Excel格式的文件
    if file_name.lower().endswith((".xls", ".xlsx")):
        source_path = os.path.join(source_dir, file_name)
        target_path = os.path.join(target_dir, file_name)
        shutil.copy2(source_path, target_path)
        print(f"已完成复制:{file_name}")

关键提醒

不管用上面哪种方法,源文件都会完整保留在源目录中,你可以在执行完代码后去源目录检查确认。如果之前你用shutil.copy时出现了源文件消失的情况,大概率是因为目标路径和源路径意外重复,或者误用到了shutil.move,可以排查下代码细节~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:20:30