用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实现面向对像的ASP程序实例
Nov 10 Python
Python使用multiprocessing实现一个最简单的分布式作业调度系统
Mar 14 Python
Python中文分词实现方法(安装pymmseg)
Jun 14 Python
Python实现调度算法代码详解
Dec 01 Python
Python实现将doc转化pdf格式文档的方法
Jan 19 Python
python3解析库BeautifulSoup4的安装配置与基本用法
Jun 26 Python
Python简单读写Xls格式文档的方法示例
Aug 17 Python
python自动化生成IOS的图标
Nov 13 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
基于Python+Appium实现京东双十一自动领金币功能
Oct 31 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
导致python中import错误的原因是什么
Jul 01 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 中的4种标记风格介绍
2012/05/10 PHP
thinkPHP中钩子的两种配置调用方法详解
2016/11/11 PHP
php微信公众平台开发(一) 配置接口
2016/12/06 PHP
PHP中危险的file_put_contents函数详解
2017/11/04 PHP
详解json在php中的应用
2018/09/30 PHP
IE Firefox 使用自定义标签的区别
2009/10/15 Javascript
Javascript 判断客户端浏览器类型代码
2010/03/01 Javascript
Array.prototype 的泛型应用分析
2010/04/30 Javascript
JQuery开发的数独游戏代码
2010/10/29 Javascript
将string解析为json的几种方式小结
2010/11/11 Javascript
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
node.js中的fs.symlinkSync方法使用说明
2014/12/15 Javascript
js判断某个方法是否存在实例代码
2015/01/10 Javascript
JavaScript 学习笔记之基础中的基础
2015/01/13 Javascript
Javascript基础教程之argument 详解
2015/01/18 Javascript
JavaScript页面模板库handlebars的简单用法
2015/03/02 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
用vue和node写的简易购物车实现
2017/04/25 Javascript
基于JavaScript实现无缝滚动效果
2017/07/21 Javascript
关于react-router的几种配置方式详解
2017/07/24 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
JavaScript实现连连看连线算法
2019/01/05 Javascript
vue中$nextTick的用法讲解
2019/01/17 Javascript
pymongo实现控制mongodb中数字字段做加法的方法
2015/03/26 Python
Python自动调用IE打开某个网站的方法
2015/06/03 Python
python之信息加密题目详解
2019/06/26 Python
python 随机生成10位数密码的实现代码
2019/06/27 Python
python 写函数在一定条件下需要调用自身时的写法说明
2020/06/01 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
基于python的opencv图像处理实现对斑马线的检测示例
2020/11/29 Python
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
财务会计实习报告体会
2013/12/20 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
2014大学生批评与自我批评思想汇报
2014/09/21 职场文书
简单介绍 http请求响应参数、无连接无状态、MIME、状态码、端口、telnet、curl
2021/03/31 HTML / CSS
Python中的套接字编程是什么?
2021/06/21 Python