使用Python os和shutil模块批量复制文件到指定文件夹

栗子
栗子
发布时间:2026-10-12 | 3人浏览过
原创

本文介绍如何利用Python的os模块列出目录内容,结合shutil模块实现文件到指定文件夹的批量复制。通过遍历文件列表、处理文件名后缀并重命名,可高效完成文件夹内容的迁移与整理工作。

Python批量复制文件的核心逻辑

在Python中,批量处理文件通常涉及两个关键步骤:获取源目录下的所有文件列表,以及将这些文件逐一复制到目标路径。os模块负责目录遍历,而shutil模块提供高级文件操作接口,如复制、移动和删除。

基础实现:遍历与复制

首先,需要确定源文件夹和目标文件夹的路径。使用os.listdir()可以获取源目录下的所有文件名列表。接着,遍历该列表,对每个文件进行重命名处理(例如去除多余的后缀或特殊字符),然后使用shutil.copyfile()将源文件复制到目标路径。

以下代码展示了这一基本过程:

import os
import shutil
import time

start_time = time.time()
# 需要被复制的文件夹
old_path = r'D:\zjf_workspace\001-地标、利器、服饰\004文本\json1'
new_path = r'D:\zjf_workspace\001-地标、利器、服饰\004文本\json'
all_list = os.listdir(old_path)
for i in all_list:
 print(i)
 name, suffix = i.rsplit('.json')
 name = name.replace('.','')
 old_name = old_path + '\\' + i
 new_name = new_path + '\\' + name + ".json"
 shutil.copyfile(old_name, new_name)

print(len(all_list))
print(all_list)
end_time = time.time()
print(end_time-start_time,'秒')

该脚本首先记录开始时间,然后列出源目录下的所有文件。对于每个文件,它通过rsplit('.json')分离文件名和扩展名,去除文件名中的点号,并构建新的目标文件名。最后,shutil.copyfile()执行实际的复制操作,并打印总耗时。

注意事项

  • 路径分隔符:在Windows系统中,路径通常使用反斜杠\。在Python字符串中,需确保正确转义或使用原始字符串(如r'...')。
  • 文件重命名:示例中通过rsplit和replace处理文件名,确保目标文件名符合预期格式。若源文件扩展名不一致,需调整分割逻辑。
  • 错误处理:生产环境中建议添加try-except块,以捕获文件不存在、权限不足等异常,避免程序中断。

总结

通过结合os和shutil模块,可以灵活地实现文件的批量复制与重命名。这种方法适用于整理大量分散文件、迁移数据或备份目录等场景。根据实际需求,可进一步优化路径处理、添加日志记录或引入并发机制以提升效率。

以上就是使用python os模块复制文件到指定文件夹的详细内容,更多关于Python文件操作的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表