import os
import shutil
sourcedir="/Users/w/Desktop/雅石/py去掉修改文件名字重新保存/原文件夹"#原始文件夹
targetdir="/Users/w/Desktop/雅石/py去掉修改文件名字重新保存/目标文件夹"#目标文件夹
def str_change(str):
if not "_bin" in str:
return str
else:
aa, bb = str.split("_bin")
return (aa+bb)
def fun_copy(sourcedir,targetdir):#拷贝方法 把原始文件夹的所有文件夹和文件 按照同样的名字拷贝到目标文件夹中
# 遍历filepath下所有文件,包括子目录
files = os.listdir(sourcedir)
for fi in files: # fi 是目录下的文件或者文件夹
fi_d = os.path.join(sourcedir, fi) # 字符串拼接
fi_new=os.path.join(targetdir, fi) #目标文件也要改变
if os.path.isdir(fi_d): # 如果文件是文件夹
if not os.path.exists(fi_new):#如果没新建过 新建同名目标文件夹
os.makedirs(fi_new)
#os.makedirs(fi_new)
fun_copy(fi_d,fi_new)#递归循环下一个目录 复制目录里面的内容
else: # 不是文件夹是 文件 判断字符串是否有_bin 粘贴到指定位置 并且修改名字
#print(os.path.join(sourcedir, fi_d)) # 不是文件夹是 文件
#print(os.path.join(targetdir, fi_new))
oldname=fi_d
#newname=fi_new
newname = str_change(fi_new)
print(oldname)
print(newname)
if not os.path.exists(newname):#如果文件不存在 存在了就不再拷贝了
shutil.copyfile(oldname, newname)
if __name__=="__main__":
fun_copy(sourcedir,targetdir)
拷贝制定文件下下的所有文件夹和文件到指定目录,并修改指定文件名字
猜你喜欢
转载自blog.csdn.net/BJUT_bluecat/article/details/85257604
今日推荐
周排行