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