用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转码问题的解决方法
Oct 07 Python
python获得linux下所有挂载点(mount points)的方法
Apr 29 Python
简单讲解Python中的闭包
Aug 11 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
python绘制地震散点图
Jun 18 Python
Python 3.8 新功能全解
Jul 25 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 Python
python logging添加filter教程
Dec 24 Python
基于keras输出中间层结果的2种实现方式
Jan 24 Python
Python API len函数操作过程解析
Mar 05 Python
使用tensorflow进行音乐类型的分类
Aug 14 Python
Python脚本调试工具安装过程
Jan 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 获取MSN好友列表的代码(2009-05-14测试通过)
2009/09/09 PHP
PHP 反向排序和随机排序代码
2010/06/30 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
php json与xml序列化/反序列化
2013/10/28 PHP
让CodeIgniter数据库缓存自动过期的处理的方法
2014/06/12 PHP
常用的php图片处理类(水印、等比缩放、固定高宽)分享
2015/06/19 PHP
PHP排序算法之直接插入排序(Straight Insertion Sort)实例分析
2018/04/20 PHP
javascript间隔刷新的简单实例
2013/11/14 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
node.js中的fs.chownSync方法使用说明
2014/12/16 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
javascript实现数组去重的多种方法
2016/03/14 Javascript
浅析vue数据绑定
2017/01/17 Javascript
微信小程序 视图容器组件的详解及实例代码
2017/01/19 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
JS中判断字符串存在和非空的方法
2018/09/12 Javascript
从vue源码看props的用法
2019/01/09 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
在Python中使用第三方模块的教程
2015/04/27 Python
Python实现多线程抓取妹子图
2015/08/08 Python
Python实现获取前100组勾股数的方法示例
2018/05/04 Python
TensorFlow的权值更新方法
2018/06/14 Python
python Plotly绘图工具的简单使用
2020/03/03 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
HTML5对比HTML4的主要改变和改进总结
2016/05/27 HTML / CSS
赫里福德的一家乡村零售商店:Philip Morris & Son
2017/06/25 全球购物
优秀求职自荐信怎样写
2013/12/18 职场文书
党建工作先进材料
2014/05/02 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
银行柜员与客户起冲突检讨书
2014/09/27 职场文书
windows10 家庭版下FTP服务器搭建教程
2022/08/05 Servers