首页 > 解决方案 > 从目录名称重命名多个文件

问题描述

我有多个目录,每个目录都有多个文件。每个目录上的每个文件都遵循相同的结构。

enter code here

.
├── one
│   ├── alpha.yaml
│   └── beta.yaml
├── three
│   ├── alpha.yaml
│   └── beta.yaml
└── two
    ├── alpha.yaml
    └── beta.yaml

我想用它们的相关目录名重命名所有文件,即:

.
├── one
│   ├── one_alpha.yaml
│   └── one_beta.yaml
├── three
│   ├── three_alpha.yaml
│   └── three_beta.yaml
└── two
    ├── two_alpha.yaml
    └── two_beta.yaml

我尝试了一些 for 循环命令,但这些命令正在删除:

for i in *; do mv "$i/_alpha.yaml" "$i/$i_alpha.yaml" ; do

标签: filerenamemv

解决方案


你可以在 python 中使用 os.rename 来做到这一点:

import os

basepath = './'
for dirname, dirnames, filenames in os.walk(basepath):
   for singleFile in filenames:  
       os.rename(singleFile, dirname + '_' + singleFile) 

让我知道它是否有效


推荐阅读