目录下会有多个问价夹,每个文件夹下包含子文件夹,归集子文件夹名称相同里面的文件资料到另一个文件中
import os
import shutil
rootdir = '/test/'
newdir = '/test1/'
dic={} ##所有同名文件夹路径
for root,dirs,files in os.walk(rootdir):
for dir in dirs:
if dir in dic:
dic[dir].append(os.path.join(root,dir))
else:
dic[dir]=[os.path.join(root,dir)]
for i in dic:
for j in dic[i]:
allfile=os.listdir(j)
for f in allfile:
if os.path.isdir(j+'/'+f):
continue
else:
nd=newdir+i
if not os.path.exists(nd):
os.makedirs(nd)
shutil.copyfile(j+'/'+f,nd+'/'+f)
遍历你的文件夹,按后缀名一样的直接存起来。
1、新建一个输出文件夹子,建立归类子文件夹,例如归类D:,在D盘根目录创建一个“OUTFileResult ”,根据归集要求,用扩展名或者您自己的想法在OUTFileResult 下建立子文件夹(例如txt、exe之类,可以先建立,也可以在程序运行过程中判断是否存在这个目录,没有则调用IO建立)。
2、递归查询除了OUTFileResult 文件夹之外的所有文件和文件夹,为什么要在同一个盘建立输出文件夹,这里有个好处,就是文件可以用移动(Move),而非复制(copy),同一个分区文件移动会非常快。
用os.walk 来遍历文件夹和文件,另外可以用os.lisdir 返回指定的文件夹包含的文件或文件夹的名字的列表, 然后可以根据你的需要,使用shutil 库 来进行copy 或者move
os.listdir()获取目录,然后 move移动就可以了。
很容易的。
如果怕乱的话,直接os.walk遍历文件目录,然后做个excel表,在表格里处理好移动的目录,然后用move对应执行就行了。
一定要用到的2个包
import os
import shutil
bj_0163_bj 这人的代码改改就能行