用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 28 Python
python判断字符串编码的简单实现方法(使用chardet)
Jul 01 Python
Python numpy 常用函数总结
Dec 07 Python
数组保存为txt, npy, csv 文件, 数组遍历enumerate的方法
Jul 09 Python
python爬虫之urllib库常用方法用法总结大全
Nov 14 Python
python 实现UTC时间加减的方法
Dec 31 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
Python数据类型之Set集合实例详解
May 07 Python
python进阶之自定义可迭代的类
Aug 20 Python
Python更新所有已安装包的操作
Feb 13 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
Python使用pickle进行序列化和反序列化的示例代码
Sep 22 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/10/09 PHP
理解php Hash函数,增强密码安全
2011/02/25 PHP
PHP对象转换为数组函数(递归方法)
2012/02/04 PHP
PHP实现正则表达式分组捕获操作示例
2018/02/03 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
2016/12/30 Javascript
jQuery+ajax的资源回收处理机制分析
2017/01/07 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
解决vue this.$forceUpdate() 处理页面刷新问题(v-for循环值刷新等)
2018/07/26 Javascript
对Vue table 动态表格td可编辑的方法详解
2018/08/28 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
Elementui表格组件+sortablejs实现行拖拽排序的示例代码
2019/08/28 Javascript
[01:52]深扒TI7聊天轮盘语音出处7
2017/05/11 DOTA
用Python制作检测Linux运行信息的工具的教程
2015/04/01 Python
Python中super()函数简介及用法分享
2016/07/11 Python
python爬虫框架scrapy实现模拟登录操作示例
2018/08/02 Python
Python装饰器模式定义与用法分析
2018/08/06 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
使用Keras预训练模型ResNet50进行图像分类方式
2020/05/23 Python
tensorflow 20:搭网络,导出模型,运行模型的实例
2020/05/26 Python
详解Python的爬虫框架 Scrapy
2020/08/03 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
美国儿童珠宝在线零售商:Loveivy
2019/05/22 全球购物
波兰在线运动商店:YesSport
2020/07/23 全球购物
关于Java String的一道面试题
2013/09/29 面试题
财务管理职业生涯规划书
2014/02/26 职场文书
分层教学实施方案
2014/03/19 职场文书
党日活动总结
2014/05/07 职场文书
2015年妇幼卫生工作总结
2015/05/23 职场文书
MySQL系列之七 MySQL存储引擎
2021/07/02 MySQL
Python中三种花式打印的示例详解
2022/03/19 Python