file - 从目录名称重命名多个文件
问题描述
我有多个目录,每个目录都有多个文件。每个目录上的每个文件都遵循相同的结构。
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
解决方案
你可以在 python 中使用 os.rename 来做到这一点:
import os
basepath = './'
for dirname, dirnames, filenames in os.walk(basepath):
for singleFile in filenames:
os.rename(singleFile, dirname + '_' + singleFile)
让我知道它是否有效
推荐阅读
- pandas - 将 pandas 中的字符串字符 (') 替换为 (-) 并将其更改为 datetime
- flutter - 选择列表行的按钮
- python - 我想将具有多个值的列拆分为一个
- javascript - 如何在 next.js 中发送带有本地资产图像的 https 请求?
- c# - 如何将 C++ 字符串从 C++dll 返回到 C# 应用程序
- javascript - 在 vanilla JS Web 应用程序中使用 Kotlin 多平台库
- pytorch - cuDNN 中的等效 AdaptiveAvgPool2d API
- visual-studio-code - 扩展主机意外终止 vscode mac
- apache-spark - 使用复杂过滤器连接两个 spark 数据集 spark java
- php - 最近下载的 WordPress 5.7.2 但在 localhost 上运行时获取错误