用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 MySQLdb Linux下安装笔记
May 09 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
Python分治法定义与应用实例详解
Jul 28 Python
关于Python 3中print函数的换行详解
Aug 08 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
pip命令无法使用的解决方法
Jun 12 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
May 03 Python
Django 外键的使用方法详解
Jul 19 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
Jul 07 Python
python list等分并从等分的子集中随机选取一个数
Nov 16 Python
python之基数排序的实现
Jul 26 Python
关于python中模块和重载的问题
Nov 02 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代码优化及php相关问题总结
2006/10/09 PHP
PHP中对数据库操作的封装
2006/10/09 PHP
typecho插件编写教程(一):Hello World
2015/05/28 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
JQUERY THICKBOX弹出层插件
2008/08/30 Javascript
JavaScript 设计模式学习 Factory
2009/07/29 Javascript
基于jQuery UI CSS Framework开发Widget的经验
2010/08/21 Javascript
js中字符替换函数String.replace()使用技巧
2011/08/14 Javascript
JavaScript入门之事件、cookie、定时等
2011/10/21 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
jQuery遮罩层效果实例分析
2016/01/14 Javascript
AngularJS基础 ng-copy 指令实例代码
2016/08/01 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
浅析Angular2子模块以及异步加载
2017/04/24 Javascript
vue-cli 3 全局过滤器的实例代码详解
2019/06/03 Javascript
ES2020让代码更优美的运算符 (?.) (??)
2021/01/04 Javascript
菜鸟使用python实现正则检测密码合法性
2016/01/05 Python
python去掉行尾的换行符方法
2017/01/04 Python
定制FileField中的上传文件名称实例
2017/08/23 Python
python双端队列原理、实现与使用方法分析
2019/11/27 Python
python实现数据结构中双向循环链表操作的示例
2020/10/09 Python
python各种excel写入方式的速度对比
2020/11/10 Python
Python可以用来做什么
2020/11/23 Python
HTML5 虚拟键盘出现挡住输入框的解决办法
2017/02/14 HTML / CSS
软件测试英文面试题
2012/10/14 面试题
酒店拾金不昧表扬信
2014/01/18 职场文书
导游个人求职信范文
2014/03/23 职场文书
协议书怎么写
2014/04/21 职场文书
优秀教师演讲稿
2014/05/06 职场文书
英语课前三分钟演讲稿
2014/08/19 职场文书
党的群众路线教育实践活动对照检查材料思想汇报
2014/09/19 职场文书
60条职场经典语录,总有一条能触动你的心
2019/08/21 职场文书
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL
css如何把元素固定在容器底部的四种方式
2022/06/16 HTML / CSS
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技