python - 仅使用 python 重命名特定子文件夹中的文件
问题描述
我有一个包含多个文件夹的路径,每个文件夹都以“P”开头并以一个单独的数字(“P001”-“P104”)结尾。这些文件夹中的每一个都有两个子文件夹“subfolder1”和“subfolder2”,它们都包含“file_1.nii”和“file_2.nii”。我只想在子文件夹 1 中将“file_1.nii”重命名为“new_name.nii”,而不是在子文件夹 2 中。
此代码适用于重命名所有子文件夹中的文件:
import os
mainpath = 'M:/path'
def replace(folder_path, old, new):
for path, subdirs, files in os.walk(folder_path):
for name in files:
if(old.lower() in name.lower()):
file_path = os.path.join(path, name)
new_name = os.path.join(path, name.lower().replace(old,new))
os.rename(file_path, new_name)
replace(mainpath, 'file_1.nii', 'new_name.nii')
但它会在所有子文件夹中重命名“file_1.nii”。有谁知道如何扩展代码,所以它只重命名特定子文件夹中的文件,或者有没有人知道替代解决方案?
蒂亚!
解决方案
推荐阅读
- java - 无法将 java.lang.String 类型的对象转换为 com.rafaquarta.whatsapp.model.Usuario 类型
- amazon-web-services - 我们能否将 aws elasticache redis 的 notify-keyspace-events 接收到 aws lambda 函数
- javascript - 在图像 R 上绘制矩形闪亮
- python - numpy.dstack 用于 3D 数组?
- java - 从@RestControllerAdvice 中的@ModelAttribute 中排除方法
- java - 如何防止 Mysql Connector/J 转换 DATE 和 TIME 时区?
- azure-devops - 使用看板时管理 Azure DevOps 中的任务
- reactjs - 函数参数用新行格式化
- c# - 在 C# 中意外创建了一个无限 while 循环
- laravel - 如何在特定项目中禁用“初始化 JS/TS 语言功能”?