import os
import shutil
primary_dir = r'原始文件夹'
target_dir = r'目标文件夹'
def str_change(str):
if not 'bin' in str:
return str
else:
aa, bb = str.split('bin')
return aa + bb
def func_copy(primary_dir, target_dir): # 拷贝方法 把原始文件夹的所有文件夹和文件 按照同样的名字拷贝到目标文件夹中
# 遍历filepath下所有文件,包括目录
files = os.listdir(primary_dir)
for i in files: # i 是目录下的文件或文件夹
i = os.path.join(primary_dir, i) # 字符串拼接
i_new = os.path.join(target_dir, i) # 目标文件夹也要改变
if os.path.isdir(i): # 如果是文件夹
if not os.path.exists(i_new): # 如果没新建过 新建同名目标文件夹
os.makedirs(i_new)
func_copy(i, i_new) # 递归循环下一个目录 复制目录里面的内容
else: # 不是文件夹 文件 判断字符串是否有_bin 粘贴到指定位置 并且修改名字
oldname = i
newname = str_change(i_new)
print(oldname)
print(newname)
if not os.path.exists(newname): # 如果文件不存在,存在了就不拷贝了
shutil.copyfile(oldname, newname)
if __name__ == '__main__':
func_copy(primary_dir, target_dir)