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

时间:2021-07-31 15:28:49

标签: python

我似乎不知道如何创建一个 for 循环来根据我的文件夹名称重命名我的文件..

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

2 个答案:

答案 0 :(得分:1)

我会使用 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)

答案 1 :(得分:0)

在“/”上拆分路径名,然后在“_”上加入。