在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