用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实现partial改变方法默认参数
Aug 18 Python
详解python单例模式与metaclass
Jan 15 Python
python简单实例训练(21~30)
Nov 15 Python
Python企业编码生成系统总体系统设计概述
Jul 26 Python
python自定义时钟类、定时任务类
Feb 22 Python
Python适配器模式代码实现解析
Aug 02 Python
Django实现基于类的分页功能
Oct 31 Python
Python 过滤错误log并导出的实例
Dec 26 Python
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解
Feb 11 Python
jupyter notebook中美观显示矩阵实例
Apr 17 Python
Python实现电视里的5毛特效实例代码详解
May 15 Python
浅谈Python数学建模之数据导入
Jun 23 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
文件系统基本操作类
2006/11/23 PHP
PHP中的float类型使用说明
2010/07/27 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php上传中文文件名乱码问题处理方案
2015/02/03 PHP
Mootools 1.2教程 滑动效果(Slide)
2009/09/15 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
走进javascript——不起眼的基础,值和分号
2017/02/24 Javascript
js实现图片左右滚动效果
2017/02/27 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
Node.js开发第三方微信公众平台
2017/06/05 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
JavaScript中创建原子的方法总结
2018/08/26 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
Nodejs让异步变成同步的方法
2019/03/02 NodeJs
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
通过GASP让vue实现动态效果实例代码详解
2019/11/24 Javascript
微信小程序实现菜单左右联动
2020/05/19 Javascript
python压缩文件夹内所有文件为zip文件的方法
2015/06/20 Python
Python正则表达式常用函数总结
2017/06/24 Python
Python处理菜单消息操作示例【基于win32ui模块】
2018/05/09 Python
python 高效去重复 支持GB级别大文件的示例代码
2018/11/08 Python
Python3安装Pillow与PIL的方法
2019/04/03 Python
python turtle库画一个方格和圆实例
2019/06/27 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
python属于解释语言吗
2020/06/11 Python
什么是python的函数体
2020/06/19 Python
python3 使用ssh隧道连接mysql的操作
2020/12/05 Python
经典公益广告词
2014/03/13 职场文书
幼儿园保育员岗位职责
2014/04/13 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
2015年学生会个人工作总结
2015/04/09 职场文书
2015年安全保卫工作总结
2015/05/14 职场文书
复兴之路观后感3000字
2015/06/02 职场文书
新手开公司创业注意事项有哪些?
2019/07/29 职场文书
Nginx配置使用详解
2022/07/07 Servers