用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读取html中指定元素生成excle文件示例
Apr 03 Python
Python bsddb模块操作Berkeley DB数据库介绍
Apr 08 Python
Python探索之修改Python搜索路径
Oct 25 Python
python 中的list和array的不同之处及转换问题
Mar 13 Python
Python通用循环的构造方法实例分析
Dec 19 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
解决Jupyter Notebook开始菜单栏Anaconda下消失的问题
Apr 13 Python
使用IPython或Spyder将省略号表示的内容完整输出
Apr 20 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
一文读懂Python 枚举
Aug 25 Python
python如何读取.mtx文件
Apr 22 Python
python 使用tkinter与messagebox写界面和弹窗
Mar 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
PHP的开发框架的现状和展望
2007/03/16 PHP
php将数据库中的电话号码读取出来并生成图片
2008/08/31 PHP
php去除HTML标签实例
2013/11/06 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
php pdo操作数据库示例
2017/03/10 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
2014/09/04 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
使用three.js 画渐变的直线
2016/06/05 Javascript
angularjs中使用ng-bind-html和ng-include的实例
2017/04/28 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
Node.js 使用jade模板引擎的示例
2018/05/11 Javascript
JavaScript键盘事件常见用法实例分析
2019/01/03 Javascript
微信小程序控制台提示warning:Now you can provide attr "wx:key" for a "wx:for" to improve performance解决方法
2019/02/21 Javascript
Vue实现类似Spring官网图片滑动效果方法
2019/03/01 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python学习入门细节知识点
2018/03/29 Python
python实现画一颗树和一片森林
2018/06/25 Python
django+xadmin+djcelery实现后台管理定时任务
2018/08/14 Python
Python 判断奇数偶数的方法
2018/12/20 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
tensorflow生成多个tfrecord文件实例
2020/02/17 Python
使用TensorBoard进行超参数优化的实现
2020/07/06 Python
Python实现自动签到脚本的示例代码
2020/08/19 Python
浅析python连接数据库的重要事项
2021/02/22 Python
牦牛毛户外探险服装:Kora
2019/02/08 全球购物
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
会计找工作求职信范文
2013/12/09 职场文书
《风娃娃》教学反思
2014/04/19 职场文书
医德医魂心得体会
2014/09/11 职场文书
三八妇女节标语
2014/10/09 职场文书
纪念建国70周年演讲稿
2019/07/19 职场文书
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏