用Python批量把文件复制到另一个文件夹的实现方法
0前言
大概是三个月前,有个人找我说要我帮忙写几行代码,功能是把一个文件夹里面的所有文件拆分成200个文件一个文件夹,很简单的。
我理解了之后,觉得还是挺简单的,花了半个小时写出来了,代码也不多,代码和思路都可以分享一下。
1环境说明
Win10系统下Python3,编译器是Pycharm。
需要安装shutil这个第三方库,直接pipinstallshutil就可以了。
2代码
先导入需要用到的库,os是用来切换路径和创建文件夹的。
shutil是用来复制黏贴文件的
importos fromshutilimportcopy
i用来计算文件数量,当i是200的倍数时,k会+1;k用来计算新建文件夹的数量,方便创建文件夹。
save_dir是想把复制出来的文件存放在的路径
#i用来计算文件数量,k用来计算新建文件夹的数量 i=0 k=0 #想保存到的根路径 save_dir=r'F:\666' #如果目录不存在,则创建 ifnotos.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.
forallDirinpathDir: 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目录不存在,则创建 ifnotos.path.isdir(to_path): os.makedirs(to_path) copy(from_path,to_path) i+=1
3相关说明
shutil的copy()是复制到一个新的地方,创建时间、修改时间、访问时间都是新的,copy2()则是会创建时间、修改时间、访问时间这些也复制过去。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。