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

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

本文介绍如何利用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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。