用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开发之字符串string操作方法实例详解
Nov 12 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
使用requests库制作Python爬虫
Mar 25 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
python多线程并发让两个LED同时亮的方法
Feb 18 Python
啥是佩奇?使用Python自动绘画小猪佩奇的代码实例
Feb 20 Python
python 给图像添加透明度(alpha通道)
Apr 09 Python
python plt可视化——打印特殊符号和制作图例代码
Apr 17 Python
Python调用shell cmd方法代码示例解析
Jun 18 Python
Python Opencv实现单目标检测的示例代码
Sep 08 Python
Python更改pip镜像源的方法示例
Dec 01 Python
利用python Pandas实现批量拆分Excel与合并Excel
May 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
php 修改zen-cart下单和付款流程以防止漏单
2010/03/08 PHP
PHP7新增函数
2021/03/09 PHP
jQuery ui 1.7更新小结
2009/08/15 Javascript
Javascript中浮点数相乘的一个解决方法
2014/06/03 Javascript
整理Javascript数组学习笔记
2015/11/29 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
JavaScript学习笔记之数组去重
2016/03/23 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
jQuery插件HighCharts绘制2D圆环图效果示例【附demo源码下载】
2017/03/09 Javascript
webpack构建vue项目的详细教程(配置篇)
2017/07/17 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
Windows下用py2exe将Python程序打包成exe程序的教程
2015/04/08 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
python 集合 并集、交集 Series list set 转换的实例
2018/05/29 Python
python实现彩色图转换成灰度图
2019/01/15 Python
详解python破解zip文件密码的方法
2020/01/13 Python
将tensorflow模型打包成PB文件及PB文件读取方式
2020/01/23 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
详解android与HTML混合开发总结
2018/06/06 HTML / CSS
全球知名旅游社区巴西站点:TripAdvisor巴西
2016/07/21 全球购物
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
River Island美国官网:英国高街时尚品牌
2018/09/04 全球购物
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
JSF的标签库有哪些
2012/04/27 面试题
专业实习自我鉴定
2013/10/29 职场文书
金融专业大学生自我评价
2014/01/09 职场文书
第二课堂活动总结
2014/05/07 职场文书
分公司任命书
2014/06/06 职场文书
2014年化验员工作总结
2014/11/18 职场文书
2016年大学自主招生自荐信范文
2015/03/24 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
养成教育主题班会
2015/08/13 职场文书
乔迁新居祝福语
2019/11/04 职场文书