Advertisement

Python3---实战项目---在特定目录下遍历所有文件夹,对现有的文件夹名称增加名称成为新的文件夹、删除特定名称的文件夹

阅读量:

通过Python3实践项目,在指定目录中扫描并访问每一个文件夹。对于现有文件夹命名系统中的每个文件夹名,在其前添加前缀以生成新的子目录。最后移除具有特定命名的文件夹。

项目背景:

复制代码
    1、在该目录下/data/soft/jenkins/workspace/遍历所有的文件夹,并存到一个列表A中。
    提取处有TB字段所有列表元素到新的列表B,列表B元素(如:/data/soft/jenkins/workspace/TB_dust)。
    对目前的列表B中所有元素加-class后缀,即新的文件夹为/data/soft/jenkins/workspace/TB_dust-class。
    在列表B中有411个文件夹,进行批量新建带有字符-class新的文件夹。
    
    2、对有特定字符(特殊字符如:-class-class)的文件夹进行批量删除

Python代码如下:

复制代码
    """
    Created on Mon Apr 29 13:15:59 2019
    
    @author: fern.xu
    """
    import os
    
    def main():
    allname = []#存储该path路径下所有的文件夹
    tbname = []#存储该path路径下所有带TB字符的文件夹
    delclass = []#存储带有字符-class-class,需要删除的元素
    path = "/data/soft/jenkins/workspace/"#根目录
    path = path.strip()
    path = path.rstrip("/")
    for fd in os.listdir(path):#遍历path下所有文件夹与文件名
        if os.path.isdir(path+"/"+fd):#遍历path下所有的文件夹
            allname.append(os.path.join(path,fd))#与path组装文件夹的绝对路径加入列表
    #print(allname)
    
    for n in allname:#遍历path路径下所有文件夹
        if n[29:31] == "TB":#查找带TB字符的文件夹
            tbname.append(n)#存储该path路径下所有带TB字符的文件夹
    print(tbname)
    
    for de in tbname:
        if de[-12:] == "-class-class":#取出最后12个字符
            delclass.append(de)
            print(delclass)
    for d in delclass:
        print("正在删除......")
        print(d)
        os.system("rm -rf "+d)#删除特定字符的文件夹
    
    '''
    for url in tbname:
        urlclass = url+"-class"#对带TB字符的文件夹,全部新建一个带-class的文件夹
        isExists = os.path.exists(urlclass)
        if not isExists:
            os.makedirs(urlclass)
            print (url + "创建成功")
        else:
            print (url + "创建失败")
    '''
    
    
    if __name__ =='__main__':
    main()

执行结果:

复制代码
    ['/data/soft/jenkins/workspace/TB_boss-class-class', '/data/soft/jenkins/workspace/TB_credit-management-class-class', '/data/soft/jenkins/workspace/TB_csp-tb-class-class', '/data/soft/jenkins/workspace/TB_dust-class-class', '/data/soft/jenkins/workspace/TB_agreement-tb-class-class', '/data/soft/jenkins/workspace/TB_dust-sub-class-class']
    正在删除......
    /data/soft/jenkins/workspace/TB_boss-class-class
    正在删除......
    /data/soft/jenkins/workspace/TB_credit-management-class-class
    正在删除......
    /data/soft/jenkins/workspace/TB_csp-tb-class-class
    正在删除......
    /data/soft/jenkins/workspace/TB_dust-class-class
    正在删除......
    /data/soft/jenkins/workspace/TB_agreement-tb-class-class
    正在删除......
    /data/soft/jenkins/workspace/TB_dust-sub-class-class
    [root@HN1C-03-00-25101 workspace]# 

参考:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868196352269f28f1f00aee485ea27e3c4e47f12bc7000

全部评论 (0)

还没有任何评论哟~