如何根据文件夹名称重命名文件名?

装甲车

我似乎无法弄清楚如何创建一个 for 循环来根据我的文件夹名称重命名我的文件..

例如。
文件夹-2021/Category/Fruits/
文件名- 2021_Category_Fruits_Apple.jpg2021_Category_Fruits_Orange.jpg等...

尤里·克里希奇

我会使用pathlib模块:

from pathlib import Path

folder = Path("d:/test") # path to your folder
files = list(folder.rglob("*.jpg")) # get all jpg files from subfolders
for f in files:
    name = "_".join(f.parts[-4:]) # the last four parts of full name
    new_file = Path(f.parent / name)
    f.rename(new_file)

实际上,实现取决于您的工作流程。这是相同代码的一个可能更聪明的变体:

folder = Path("d:/test")             # path to your folder
folder_parts_len = len(folder.parts) # len(["d", "test"])
files = list(folder.rglob("*.jpg"))  # all jpg files from subfolders

for f in files:
    file_parts = f.parts[folder_parts_len:] # ["2021", "Category", "Fruits", "Apple.jpg"]
    name = "_".join(file_parts)             # "2021_Category_Fruits_Apple.jpg"
    new_file = Path(f.parent / name)
    f.rename(new_file)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中逐行使用文本文件的新名称重命名文件夹中的文件名

在不同文件夹中使用相同名称重命名文件

python:通过子文件夹名称重命名子文件夹中的文件

根据Spark Scala中的文件夹名称重命名和移动S3文件

使用文件夹名称重命名文件夹中的所有图像

在Java中用不同的名称重命名多个文件夹

如何批量将文件重命名为文件夹名称+递增编号?我收到名称重复错误

Windows CMD-根据文件夹名称重命名文件

如何使用文件夹名称重命名文件列表

如果文件夹名称重复,如何根据上传的文件自动重命名文件夹

批处理文件-根据父名称和(子)文件夹名称重命名文件

无法重命名文件,文件夹名称与Ubuntu 13.10中的文件名冲突

Shell脚本从其父文件夹名称重命名多个文件

从文件夹名称重命名文件的Bash脚本问题

根据文件夹名称重命名文件

根据文件夹名称重命名文件

通过文件夹名称重命名文件

如何重命名多个文件名包含子文件夹?

如何使用其他文件夹中文件的相同名称重命名多个图像?

我可以使用父文件夹的名称重命名文件夹中的文件吗?

在Linux上按文件夹的文件夹名称重命名文件

重命名,根据新名称创建文件夹

通过添加父文件夹名称重命名文件

从文件名重命名文件夹 [脚本]

重命名文件夹中的文件名

Bash:使用文件夹名称重命名文件(每个文件夹 1 个)

使用父文件夹的名称重命名子文件夹中的文件

使用 bash `find` 使用文件夹名称重命名文件

如何重命名文件夹中的文件名?