用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 相关文章推荐
Pyhton中防止SQL注入的方法
Feb 05 Python
Python中Selenium模拟JQuery滑动解锁实例
Jul 26 Python
numpy中索引和切片详解
Dec 15 Python
python实现隐马尔科夫模型HMM
Mar 25 Python
Django开发中的日志输出的方法
Jul 02 Python
深入浅析Python中list的复制及深拷贝与浅拷贝
Sep 03 Python
python3.6+django2.0+mysql搭建网站过程详解
Jul 24 Python
python批量读取文件名并写入txt文件中
Sep 05 Python
python实现批量命名照片
Jun 18 Python
Python生成pdf目录书签的实例方法
Oct 29 Python
Python eval函数介绍及用法
Nov 09 Python
python迷宫问题深度优先遍历实例
Jun 20 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
一个oracle+PHP的查询的例子
2006/10/09 PHP
用PHP+java实现自动新闻滚动窗口
2006/10/09 PHP
一周学会PHP(视频)Http下载
2006/12/12 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
jQuery 标题的自动翻转实现代码
2009/10/14 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
JS数组合并push与concat区别分析
2015/12/17 Javascript
基于JQuery实现分隔条的功能
2016/06/17 Javascript
jsp 自动编译机制详细介绍
2016/12/01 Javascript
详解Vue使用 vue-cli 搭建项目
2017/04/20 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
浅析Vue 和微信小程序的区别、比较
2018/08/03 Javascript
详解auto-vue-file:一个自动创建vue组件的包
2019/04/26 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
解决vue的router组件component在import时不能使用变量问题
2020/07/26 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
Empty test suite.(PyCharm程序运行错误的解决方法)
2018/11/30 Python
快速了解Python开发环境Spyder
2020/06/29 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
会计应届生的自荐信
2013/12/13 职场文书
应届护士求职信范文
2014/01/26 职场文书
全神贯注教学反思
2014/02/03 职场文书
六查六看自查材料
2014/02/17 职场文书
目标管理责任书
2014/04/15 职场文书
欢迎领导标语
2014/06/27 职场文书
大二学生学年自我鉴定
2014/09/12 职场文书
高考升学宴主持词
2019/06/21 职场文书
八年级作文之友情
2019/11/25 职场文书
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers