用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文件中的特定数据的实现代码
Mar 24 Python
Python random模块常用方法
Nov 03 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
python django 增删改查操作 数据库Mysql
Jul 27 Python
对python 矩阵转置transpose的实例讲解
Apr 17 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
May 30 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
200行python代码实现2048游戏
Jul 17 Python
python反转列表的三种方式解析
Nov 08 Python
centos+nginx+uwsgi+Django实现IP+port访问服务器
Nov 15 Python
python统计文章中单词出现次数实例
Feb 27 Python
python中sympy库求常微分方程的用法
Apr 28 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/11/27 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
javascript编程起步(第四课)
2007/01/10 Javascript
js 页面刷新location.reload和location.replace的区别小结
2009/12/24 Javascript
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
jQuery学习笔记之jQuery的动画
2010/12/22 Javascript
JqGrid web打印实现代码
2011/05/31 Javascript
appendChild() 或 insertBefore()使用与区别介绍
2013/10/11 Javascript
js判断鼠标左、中、右键哪个被点击的方法
2015/01/27 Javascript
通过实例理解javascript中没有函数重载的概念
2015/06/03 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
WordPress 单页面上一页下一页的实现方法【附代码】
2016/03/10 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
jQuery树形控件zTree使用小结
2016/08/02 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
vue-router 导航钩子的具体使用方法
2017/08/31 Javascript
jQuery 禁止表单用户名、密码自动填充功能
2017/10/30 jQuery
基于vue.js实现分页查询功能
2018/12/29 Javascript
微信小程序 简易计算器实现代码实例
2019/09/02 Javascript
python自动截取需要区域,进行图像识别的方法
2018/05/17 Python
对sklearn的使用之数据集的拆分与训练详解(python3.6)
2018/12/14 Python
在cmd中查看python的安装路径方法
2019/07/03 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
python 三元运算符使用解析
2019/09/16 Python
python实现智能语音天气预报
2019/12/02 Python
Django ModelForm操作及验证方式
2020/03/30 Python
Python文件夹批处理操作代码实例
2020/07/21 Python
python opencv pytesseract 验证码识别的实现
2020/08/28 Python
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
全球速卖通:AliExpress(国际版淘宝)
2017/09/20 全球购物
降消项目实施方案
2014/03/30 职场文书
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python