0大约三个月前,有人找到我,让我写几行代码。功能是把一个文件夹下的所有文件拆分成200个文件一个文件夹,很简单。明白之后,觉得还是挺简单的。花了半个小时才写出来,代码也不多。我可以分享代码和想法。1环境说明Win10系统下的Python3,编译器为Pycharm。需要安装第三方库shutil,直接pipinstallshutil即可。2代码先导入需要用到的库,os用于切换路径和创建文件夹。shutil用于复制和粘贴文件。importosfromshutilimportcopyi用于计算文件数。当i是200的倍数时,k为+1;k用于计算新建文件夹的个数,方便创建文件夹。save_dir是你要存放复制文件的路径#i用来计算文件个数,k用来计算新建文件夹个数i=0k=0#你要保存到的根路径save_dir=r'F:\666'#如果目录不存在则创建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。forallDirinpathDir:if((i%200)==0):print("200的倍数,新建文件夹")k+=1print(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+=13相关说明shutil的copy()是复制到一个新的地方,创建时间,修改时间,访问时间都是新的,copy2()的创建时间、修改时间、访问时间也都复制过去。
