1.目的
在一个文件夹中有多个子文件夹,需要将子文件夹中的文件都放在同一个文件中。
2.代码
import os
import shutil
source_path = os.path.abspath(r'D:\img_pre') # 源文件夹
target_path = os.path.abspath(r'D:\backup') # 目标文件夹
if not os.path.exists(target_path): # 目标文件夹不存在就新建
os.makedirs(target_path)
if os.path.exists(source_path): # 源文件夹存在才执行
# root 所指的是当前正在遍历的这个文件夹的本身的地址
# dirs 是一个 list,内容是该文件夹中所有的目录的名字(不包括子目录)
# files 同样是 list, 内容是该文件夹中所有的文件(不包括子目录)
i = 1
for root, dirs, files in os.walk(source_path):
for file in files:
src_file = os.path.join(root, file)
shutil.copy(src_file, target_path)
print(src_file,i)
i = i+1
print('复制完成')
这里的原文件夹中的文件不能有重名的,否则会覆盖掉一部分文件,所以在移动时,先将图片都重新命名一下,可以参考我的另一篇博客【Python】多文件夹图片重命名