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

yipeiwu_com5年前Python基础

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判断两个文件是否相同与两个文本进行相同项筛选的方法

python判断两个文件是否相同 import hashlib def getHash(f): line=f.readline() hash=hashlib.md5()...

python 实现简单的FTP程序

python 实现简单的FTP程序

FTP即文件传输协议;它基于客户机-服务器模型体系结构,应用广泛。它有两个通道:一个命令通道和一个数据通道。命令通道用于控制通信,数据通道用于文件的实际传输。使用FTP可以做很多事情,比...

Python中的数据对象持久化存储模块pickle的使用示例

Python中可以使用 pickle 模块将对象转化为文件保存在磁盘上,在需要的时候再读取并还原。具体用法如下: pickle是Python库中常用的序列化工具,可以将内存对象以文本或二...

Python嵌套列表转一维的方法(压平嵌套列表)

前一段去云英面试,技术官很”不厚道“了问了一个非常简单的问题:如何将多维列表转化了一维的?当时虽然想到了使用迭代或者列表生成式可以做到,但是可以没能可行的代码,回来后一顿后悔。 对于规范...

Python语言实现机器学习的K-近邻算法

Python语言实现机器学习的K-近邻算法

写在前面 额、、、最近开始学习机器学习嘛,网上找到一本关于机器学习的书籍,名字叫做《机器学习实战》。很巧的是,这本书里的算法是用Python语言实现的,刚好之前我学过一些Python基础...