用Python批量把文件复制到另一个文件夹的实现方法

作者:伪君子 时间:2021-03-10 14:53:11 

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() 则是会创建时间、修改时间、访问时间这些也复制过去。

来源:https://segmentfault.com/a/1190000020086614

标签:Python,复制文件,另一个文件夹
0
投稿

猜你喜欢

  • Python编程快速上手——疯狂填词程序实现方法分析

    2023-07-25 08:57:17
  • Python自动化测试利器selenium详解

    2021-06-07 20:22:10
  • 优化MySQL数据库性能的八大“妙手”

    2007-11-18 14:49:00
  • python直接调用和使用swig法方调用c++库

    2021-05-26 11:08:26
  • python读取与处理netcdf数据方式

    2021-11-09 02:45:01
  • python实现简易的学生信息管理系统

    2021-08-24 12:07:09
  • Python利用matplotlib绘制约数个数统计图示例

    2023-11-12 16:00:43
  • Django-migrate报错问题解决方案

    2021-11-05 13:30:16
  • python实现挑选出来100以内的质数

    2023-03-03 16:32:04
  • 采用手动分页方式显示文章具体的内容

    2009-10-29 11:58:00
  • python中logging库的使用总结

    2022-10-29 09:36:28
  • PyQt5实现界面(页面)跳转的示例代码

    2023-06-21 18:48:43
  • Python函数参数定义及传递方式解析

    2021-10-19 21:28:25
  • 详解python分布式进程

    2023-07-01 16:25:16
  • Pytorch之parameters的使用

    2022-05-22 21:06:01
  • display:inline-block的深入理解

    2007-05-11 17:03:00
  • 简单的PHP缓存设计实现代码

    2023-10-25 19:58:08
  • Ajax+asp应用实例 注册模块,表单提交

    2011-04-08 10:47:00
  • HTML 5新增的元素

    2007-10-29 12:39:00
  • WEB页面工具语言XML带来的好处

    2008-05-29 11:01:00
  • asp之家 网络编程 m.aspxhome.com