用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-基础-入门 简介
Aug 09 Python
Python面向对象编程中的类和对象学习教程
Mar 30 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
python学习教程之使用py2exe打包
Sep 24 Python
python 用lambda函数替换for循环的方法
Jun 09 Python
python使用插值法画出平滑曲线
Dec 15 Python
python实现全盘扫描搜索功能的方法
Feb 14 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
Django 反向生成url实例详解
Jul 30 Python
Python实现平行坐标图的绘制(plotly)方式
Nov 22 Python
浅谈keras中的后端backend及其相关函数(K.prod,K.cast)
Jun 29 Python
Python 文字识别
May 11 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设计聊天室步步通
2006/10/09 PHP
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
php is_file 判断给定文件名是否为一个正常的文件
2010/05/10 PHP
如何使用FireFox插件FirePHP调试PHP
2013/07/23 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
PHP中的print_r 与 var_dump 输出数组
2016/06/13 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
jQuery EasyUI API 中文文档 搜索框
2011/09/29 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
js的Prototype属性解释及常用方法
2014/05/08 Javascript
控制文字内容的显示与隐藏示例
2014/06/11 Javascript
Angular4.x通过路由守卫进行路由重定向实现根据条件跳转到相应的页面(推荐)
2018/05/10 Javascript
vue :src 文件路径错误问题的解决方法
2018/05/15 Javascript
Node 搭建一个静态资源服务器的实现
2019/05/20 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
2020/11/05 Javascript
vue-quill-editor插入图片路径太长问题解决方法
2021/01/08 Vue.js
Flask框架中密码的加盐哈希加密和验证功能的用法详解
2016/06/07 Python
Django1.7+python 2.78+pycharm配置mysql数据库
2016/10/09 Python
Python AES加密实例解析
2018/01/18 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
Python模块汇总(常用第三方库)
2019/10/07 Python
Python安装OpenCV的示例代码
2020/03/05 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
如何转换一个字符串到enum值
2014/04/12 面试题
Java Servlet API中forward() 与redirect()的区别
2014/04/20 面试题
大学生农村教师实习自我鉴定
2013/09/21 职场文书
移动通信行业实习自我鉴定
2013/09/28 职场文书
土木工程毕业生自荐信
2013/11/12 职场文书
大学生求职自我评价
2014/01/16 职场文书
生日寿宴答谢词
2014/01/19 职场文书
写自荐信的注意事项
2014/03/09 职场文书
满月酒邀请函
2015/01/30 职场文书
同事欢送会致辞
2015/07/31 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android