用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使用循环实现批量创建文件夹示例
Mar 25 Python
Python实现获取命令行输出结果的方法
Jun 10 Python
[原创]使用豆瓣提供的国内pypi源
Jul 02 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
Django 表单模型选择框如何使用分组
May 16 Python
Django实现发送邮件功能
Jul 18 Python
解决python中导入win32com.client出错的问题
Jul 26 Python
Python生命游戏实现原理及过程解析(附源代码)
Aug 01 Python
python装饰器原理与用法深入详解
Dec 19 Python
Python3中configparser模块读写ini文件并解析配置的用法详解
Feb 18 Python
PyTorch 导数应用的使用教程
Aug 31 Python
python3美化表格数据输出结果的实现代码
Apr 14 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.ini中文版
2006/10/09 PHP
通过5个php实例细致说明传值与传引用的区别
2012/08/08 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
php实现的顺序线性表示例
2019/05/04 PHP
jquery插件jbox使用iframe关闭问题
2009/02/09 Javascript
javascript 定义初始化数组函数
2009/09/07 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
js/jquery获取文本框输入焦点的方法
2014/03/04 Javascript
jQuery $.extend()用法总结
2014/06/15 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
jQuery基于函数重载实现自定义Alert函数样式的方法
2016/07/27 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
Three.js实现3D机房效果
2018/12/30 Javascript
JS计算斐波拉切代码实例
2019/09/12 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
vue-cli在 history模式下的配置详解
2019/11/26 Javascript
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
python书籍信息爬虫实例
2018/03/19 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
ActiveMQ:使用Python访问ActiveMQ的方法
2019/01/30 Python
python实现udp聊天窗口
2020/03/31 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
德国户外商店:eXXpozed
2020/07/25 全球购物
铭立家具面试题
2012/12/06 面试题
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
安全教育主题班会教案
2015/08/12 职场文书
2016党员党课心得体会
2016/01/07 职场文书
Nginx快速入门教程
2021/03/31 Servers
纯CSS如何禁止用户复制网页的内容
2021/11/01 HTML / CSS