用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 相关文章推荐
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
使用Python搭建虚拟环境的配置方法
Feb 28 Python
python中返回矩阵的行列方法
Apr 04 Python
Python用for循环实现九九乘法表
May 31 Python
python使用phoenixdb操作hbase的方法示例
Feb 28 Python
python 生成器和迭代器的原理解析
Oct 12 Python
python可视化实现KNN算法
Oct 16 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
python实现进度条的多种实现
Apr 29 Python
Python max函数中key的用法及原理解析
Jun 26 Python
python ConfigParser库的使用及遇到的坑
Feb 12 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
DOTA2 6.87版本后新眼位详解攻略
2020/04/20 DOTA
外媒评选出10支2020年最受欢迎的Dota2战队
2021/03/05 DOTA
PHP 和 XML: 使用expat函数(二)
2006/10/09 PHP
linux使用crontab实现PHP执行计划定时任务
2014/05/10 PHP
PHP安装memcached扩展笔记
2015/05/28 PHP
php实现微信模板消息推送
2018/03/30 PHP
Laravel实现搜索的时候分页并携带参数
2019/10/15 PHP
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
js中document.getElementByid、document.all和document.layers区分介绍
2011/12/08 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
javascript的switch用法注意事项分析
2015/02/02 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
2016/06/07 Javascript
详解nodejs微信公众号开发——6.自定义菜单
2017/04/13 NodeJs
JS原生数据双向绑定实现代码
2017/08/14 Javascript
浅谈Angular路由复用策略
2017/10/04 Javascript
Node.js连接Sql Server 2008及数据层封装详解
2018/08/27 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
微信小程序搜索功能(附:小程序前端+PHP后端)
2019/02/28 Javascript
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
利用soaplib搭建webservice详细步骤和实例代码
2013/11/20 Python
利用QT写一个极简单的图形化Python闹钟程序
2015/04/07 Python
Python字符串切片操作知识详解
2016/03/28 Python
详解Python函数可变参数定义及其参数传递方式
2017/08/02 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Python Selenium 设置元素等待的三种方式
2020/03/18 Python
Python3 pickle对象串行化代码实例解析
2020/03/23 Python
Python virtualenv虚拟环境实现过程解析
2020/04/18 Python
python语言的优势是什么
2020/06/17 Python
Prometheus开发中间件Exporter过程详解
2020/11/30 Python
美国知名的时尚购物网站:Anthropologie
2016/12/22 全球购物
学子宴答谢词
2014/01/25 职场文书
中学教师暑期培训方案
2014/08/27 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
先进单位申报材料
2014/12/25 职场文书
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS