在python中重命名子目录

在python中重命名子目录,python,python-3.x,Python,Python 3.x,我有一个名为数据的目录,其中包含几个文件夹/子文件夹,如下所示 /training/07-21-2016-ABCD-67862/1-ROI regi images-08456/1.png /training/08-11-2017-AESD-66874/2-ROI regi images-06521/2.png - - /training/67862/08456/1.png /training/66874/06521/2.png - - 我想重命名文件夹/子文件夹,如下所示 /training

我有一个名为
数据
的目录,其中包含几个
文件夹/子文件夹
,如下所示

/training/07-21-2016-ABCD-67862/1-ROI regi images-08456/1.png
/training/08-11-2017-AESD-66874/2-ROI regi images-06521/2.png
-
-
/training/67862/08456/1.png
/training/66874/06521/2.png
-
-
我想重命名文件夹/子文件夹,如下所示

/training/07-21-2016-ABCD-67862/1-ROI regi images-08456/1.png
/training/08-11-2017-AESD-66874/2-ROI regi images-06521/2.png
-
-
/training/67862/08456/1.png
/training/66874/06521/2.png
-
-
注意,如上所示,我在子文件夹中只保留了最后5位数字(在培训文件夹中没有名称更改)。如何在python中实现这一点? 这就是我所做的

temp = os.walk(test_path, topdown=False)
for root, dirs, files in temp:
    for i in dirs:
        dir = os.path.join(root,i)

        os.rename(dir, dir[-5:]) # get only the last five digits.

但是我没有得到想要的输出

正则表达式将实现以下功能:

temp = os.walk('training', topdown=False)
    for root, dirs, files in temp:
        for name in files:
            old_path = os.path.join(root, name)
            r1 = re.search(r'(?<=\d{5}\\).*\d{5}', old_path)
            r2 = re.search(r'(?<=training\\).*\d{5}(?=\\.*\d{5})', old_path)

            os.rename(old_path, old_path.replace(r1.group(), r1.group()[-5:]).replace(r2.group(), r2.group()[-5:]))
temp=os.walk('training',top-down=False)
对于临时目录中的根目录、目录和文件:
对于文件中的名称:
old_path=os.path.join(根,名称)

r1=re.search(r')(?你可以了解一些关于
glob
。谢谢@Zaven Zareyan。它现在写着“AttributeError:'非类型'对象没有属性'组'”。你能帮我修复它吗?谢谢这意味着你的路径不喜欢结构
“/training/07-21-2016-ABCD-67862/1-ROI regi images-08456/1.png”
什么是
旧路径
?/data/Mass-Training\u P\u 00871\u LEFT\u MLO\u 1/07-21-2016-DDSM-56733/1-ROI mask images-11516