主代码
import os,shutil
sourceDir=r"**\SLZ1A"
targetDir=r"**\SLZ1A\all"
for root, dirs, files in os.walk(sourceDir):
print(root)
if root==targetDir:
continue
else:
for file in files:
shutil.copy(os.path.join(root,file),targetDir)
这部分代码主要是用来提取主文件夹下的各个子文件夹中的文件,并复制到指定的文件夹当中,示例中SLZ1A是待提取文件的主文件夹,在主文件夹下新建了子文件夹all,用于存储复制的各个文件。
运行时获取的主文件夹下的各个子文件夹
总结
对于我使用的情况,需要将存储文件夹同样放在主文件夹下,这就导致了遍历子目录时,存储文件夹all同样会被遍历,这就导致在复制文件时,有的文件名会与存储文件夹中文件名重复导致程序报错,此时加入
if root==targetDir:
continue
跳过该文件夹,即可解决该问题。