python批量复制并且重命名文件

来源:互联网 发布:淘宝中我的试用在哪里 编辑:程序博客网 时间:2024/06/05 23:49

用的是python 3.6.0版本,

操作系统是windows10


# -*- coding: gbk -*-#拷贝文件并且按照规则重命名#命名规则:给定前缀或者后缀  添加编号import osimport timeimport shutilimport sys#sourceDir="C:\\Users\\zxl\\Desktop\\图片"def createTargetDir(sourceDir):    if not os.path.isdir(sourceDir):        print("给定的源文件夹不存在,请检查");        return;        targetDir=sourceDir+'\\test'        if not os.path.isdir(targetDir):        os.mkdir(targetDir)        print('创建目标文件夹为:%s'% targetDir)    else:        print('目标文件夹:%s  已存在,需要删除!'% targetDir)        shutil.rmtree(targetDir,True)        os.mkdir(targetDir)    return targetDir    def copyAndRename(sourceDir,targetDir,rule):    print('-----------批量复制并且重命名start---------------')    fileList=os.listdir(sourceDir)    i=1    print('sourceDir:%s--->targetDir:%s'%(sourceDir,targetDir))    fobj=open(targetDir+'\\test.txt','w')        ruleIndex=rule.rfind(':')    pre=rule[ruleIndex+1:]    suf=rule[ruleIndex+1:]        for f in fileList:           if os.path.isdir(os.path.join(sourceDir,f)):            continue        index=f.rfind('.')        #fileName=f[:index]        fileExt=f[index:]        fileNameWithExt=os.path.basename(f)        sf=os.path.join(sourceDir,f)        newFileName=('%d%s' % (i,fileExt))        if rule.startswith('pre'):            newFileName=('%s-%d%s'%(pre,i,fileExt))        elif rule.startswith('suf'):             newFileName=('%d-%s%s'%(i,suf,fileExt))        tf=os.path.join(targetDir,newFileName)        print('%s -->>%s' % (fileNameWithExt,newFileName))        fobj.writelines('%s -->>%s\n' % (fileNameWithExt,newFileName))        if(os.path.isfile(sf)):           shutil.copyfile(sf, tf)        i+=1    print('-----------批量复制并且重命名end---------------')def testDomain():        global  rule    rule=200    print(rule)if __name__ == '__main__':  #程序运行入口    print('-----------------------zxl----------------------')    while(True):        sd=input('Enter sourceDir:')        print('给定的源文件夹为:%s' % sd)        rule=input('Enter nameRule,eg1:prefix:ls  eg2:suffix:ls')        td=createTargetDir(sd)        copyAndRename(sd,td,rule)        input('Enter the any press to exit' )        break;





原创粉丝点击