用Python批量把文件复制到另一个文件夹的实现方法


Posted in Python onAugust 16, 2019

0 前言

大概是三个月前,有个人找我说要我帮忙写几行代码,功能是把一个文件夹里面的所有文件拆分成 200 个文件一个文件夹,很简单的。

我理解了之后,觉得还是挺简单的,花了半个小时写出来了,代码也不多,代码和思路都可以分享一下。

1 环境说明

Win10 系统下 Python3,编译器是 Pycharm。

需要安装 shutil 这个第三方库,直接 pip install shutil 就可以了。

2 代码

先导入需要用到的库,os 是用来切换路径和创建文件夹的。

shutil 是用来复制黏贴文件的

import os
from shutil import copy

i 用来计算文件数量,当 i 是 200 的倍数时,k 会 +1;k 用来计算新建文件夹的数量,方便创建文件夹。

save_dir 是想把复制出来的文件存放在的路径

# i 用来计算文件数量,k 用来计算新建文件夹的数量
i = 0
k = 0

# 想保存到的根路径
save_dir = r'F:\666'
# 如果目录不存在,则创建
if not os.path.isdir(save_dir):
  os.makedirs(save_dir)

dir_name 是新的文件夹的命名;file_path 是想拆分的文件夹所在路径,也就是一大堆文件所在的路径。

os.listdir(file_path) 是获取指定路径下包含的文件或文件夹列表,在 Unix, Windows 下使用。

# 想保存的名字
dir_name = "junzi"

# 想拆分的文件夹所在路径
file_path = r'F:\ALL'

# 获取 file_path 下的文件和文件夹列表
# 因为 file_path 里面没有文件夹,所以不处理有文件夹的情况
pathDir = os.listdir(file_path)

获取到了列表,那就一个一个进行遍历。0 是 200 的倍数,所以一开始 k 的值会 +1 。

allDir 是文件的名字+后缀名。from_path 就是当前这个被遍历出来的文件的完整路径,to_path是这个文件要复制到的路径。

接着 copy(from_path, to_path) 完成复制黏贴,最后 i 自增1.

for allDir in pathDir:
  if( (i%200) == 0):
    print("200 的倍数,新建一个文件夹")
    k += 1

  print(allDir)
  from_path = os.path.join(file_path, allDir)
  to_path = save_dir + "\\" + dir_name + str(k)

  # 如果 to_path 目录不存在,则创建
  if not os.path.isdir(to_path):
    os.makedirs(to_path)
  copy(from_path, to_path)
  i += 1

3 相关说明

shutil 的 copy() 是复制到一个新的地方,创建时间、修改时间、访问时间都是新的,copy2() 则是会创建时间、修改时间、访问时间这些也复制过去。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中合并两个文本文件并按照姓名首字母排序的例子
Apr 25 Python
python根据路径导入模块的方法
Sep 30 Python
python中global与nonlocal比较
Nov 21 Python
Python bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
Python处理json字符串转化为字典的简单实现
Jul 07 Python
Python之os操作方法(详解)
Jun 15 Python
实例详解Python装饰器与闭包
Jul 29 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
python通过实例讲解反射机制
Oct 17 Python
解决paramiko执行命令超时的问题
Apr 16 Python
python不到50行代码完成了多张excel合并的实现示例
May 28 Python
Python将QQ聊天记录生成词云的示例代码
Feb 10 Python
Python Web框架之Django框架cookie和session用法分析
Aug 16 #Python
python中hasattr()、getattr()、setattr()函数的使用
Aug 16 #Python
Python中IP地址处理IPy模块的方法
Aug 16 #Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
Aug 16 #Python
Pyinstaller 打包exe教程及问题解决
Aug 16 #Python
python函数参数(必须参数、可变参数、关键字参数)
Aug 16 #Python
Python Web框架之Django框架文件上传功能详解
Aug 16 #Python
You might like
PHP 和 MySQL 基础教程(一)
2006/10/09 PHP
PHP 学习路线与时间表
2010/02/21 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
php将文本文件转换csv输出的方法
2014/12/31 PHP
WordPress特定文章对搜索引擎隐藏或只允许搜索引擎查看
2015/12/31 PHP
php使用CURL模拟GET与POST向微信接口提交及获取数据的方法
2016/09/23 PHP
PHP读取文本文件并逐行输出该行使用最多的字符与对应次数的方法
2016/11/25 PHP
jquery JSON的解析方式
2009/07/25 Javascript
关于js遍历表格的实例
2013/07/10 Javascript
js中符号转意问题示例探讨
2013/08/19 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
Jquery Mobile 自定义按钮图标
2015/11/18 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
js事件委托和事件代理案例分享
2017/07/25 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
vue element项目引入icon图标的方法
2018/06/06 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
vue.js实现二级菜单效果
2019/10/19 Javascript
Node绑定全局TraceID的实现方法
2019/11/14 Javascript
JS实现密码框效果
2020/09/10 Javascript
Python函数的周期性执行实现方法
2016/08/13 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
英国在线电子和小工具商店:TecoBuy
2018/10/06 全球购物
硕士研究生自我鉴定
2013/11/08 职场文书
实习工作表现评语
2014/12/31 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
社区服务活动感想
2015/08/11 职场文书
2015年教师节广播稿
2015/08/19 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
2019入党申请书格式
2019/06/25 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
MySQL生成千万测试数据以及遇到的问题
2022/08/05 MySQL