【问题标题】:Rename multiple files from directory name从目录名称重命名多个文件
【发布时间】:2019-11-13 22:31:12
【问题描述】:

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

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中完成
  • 任何线索如何在 python 中?
  • 使用 os.rename: import os os.rename('a.txt', 'b.txt')
  • 如果您需要完整的脚本,我会发布答案
  • 你能附加完整的脚本吗?

标签: file rename mv


【解决方案1】:

你可以在 python 中使用 os.rename:

import os

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

让我知道它是否有效

【讨论】:

  • 我必须在上面更改任何内容或一次性运行吗?
  • 它应该运行。唯一的条款是这个 python 文件必须在你的根文件夹中
  • 为什么在根目录下?如果这改变了任何其他文件怎么办?
  • 对于根目录我的意思是这个。文件夹: 。 ├── one │ ├── alpha.yaml │ └── beta.yaml ├── three │ ├── alpha.yaml │ └── beta.yaml └── two ├── alpha.yaml └── beta.yaml
  • one , twothree 的文件夹
猜你喜欢
  • 2016-07-15
  • 2021-03-28
  • 2017-03-28
  • 2012-12-27
  • 1970-01-01
  • 2017-04-07
  • 1970-01-01
  • 1970-01-01
  • 2018-11-01
相关资源
最近更新 更多