用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正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
简单上手Python中装饰器的使用
Jul 12 Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 Python
python列表生成式与列表生成器的使用
Feb 23 Python
利用Python将每日一句定时推送至微信的实现方法
Aug 13 Python
python实现简易数码时钟
Feb 19 Python
Python3 修改默认环境的方法
Feb 16 Python
详解DeBug Python神级工具PySnooper
Jul 03 Python
在Django中实现添加user到group并查看
Nov 18 Python
如何在VSCode下使用Jupyter的教程详解
Jul 13 Python
PyCharm2020.1.2社区版安装,配置及使用教程详解(Windows)
Aug 07 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 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中的实现trim函数代码
2007/03/19 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
Yii2.0表关联查询实例分析
2016/07/18 PHP
PHP折半(二分)查找算法实例分析
2018/05/12 PHP
php中try catch捕获异常实例详解
2020/08/06 PHP
Array.prototype.slice 使用扩展
2010/06/09 Javascript
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
JS前向后瞻正则表达式定义与用法示例
2016/12/27 Javascript
js模拟微博发布消息
2017/02/23 Javascript
vue实现全选、反选功能
2020/11/17 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
浅谈vue单页面中有多个echarts图表时的公用代码写法
2020/07/19 Javascript
在Vue中获取自定义属性方法:data-id的实例
2020/09/09 Javascript
Python操作json数据的一个简单例子
2014/04/17 Python
python编程开发之日期操作实例分析
2015/11/13 Python
Python3利用SMTP协议发送E-mail电子邮件的方法
2017/09/30 Python
python实现词法分析器
2019/01/31 Python
Python实现带下标索引的遍历操作示例
2019/05/30 Python
Python交互环境下打印和输入函数的实例内容
2020/02/16 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
python+selenium+chromedriver实现爬虫示例代码
2020/04/10 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
Python3如何实现Win10桌面自动切换
2020/08/11 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
会议邀请书范文
2014/02/02 职场文书
护士毕业自我鉴定
2014/02/07 职场文书
先进集体事迹材料
2014/02/17 职场文书
离职证明标准格式
2014/09/15 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
Python编程super应用场景及示例解析
2021/10/05 Python