gpt4 book ai didi

python - 将目录中的文件夹名称添加到文件名

转载 作者:行者123 更新时间:2023-12-04 15:01:57 25 4
gpt4 key购买 nike

我正在努力和挣扎,我希望你们能帮助我:

大家好我有一个包含许多子文件夹的文件夹,最后一个子文件夹中有文件。我想编写一个 Python 代码,我可以在其中将目录中所有文件夹的文件夹名称添加到文件名末尾的括号中。

例如,我的基本目录是 C:\Users\cemil.kocyigit\Downloads\Code,它具有以下结构:

Folder_1
> SubFolder_1
> FileName1.abc
> Filename2.abc
> SubFolder_2
> SubSubFolder_1
> SubFileName1.abc

Folder_2
> SubFolder11
> FileName11.abc
> Filename12.abc
> ..............

Folder_3
> Subfolder..........

我想将文件重命名为:FileName1(Subfolder_1)(Folder_1).abcSubFileName1(SubSubFolder_1)(Subfolder_2)(Folder_1).abc/p>

到目前为止我所做的是:

import os

for root, dirs, files in os.walk("C:\\Users\\cemil.kocyigit\\Downloads\\Code"):
if not files:
continue
prefix = os.path.basename(root)
for f in files:
base = os.path.basename(f)
text = os.path.splitext(base)[0]
extension = os.path.splitext(base)[1]
os.rename(os.path.join(root, f), os.path.join(root, "{}({}){}".format(text, prefix, extension)))

通过这段代码,我可以获取之前文件夹的文件夹名称,但不能获取该目录中所有文件夹的文件夹名称?

我得到:FileName1(Subfolder_1).abc

是否有机会更改代码,使其递归搜索基目录中的所有文件夹名称,然后搜索文件名?

(请不要评判我的写作,我是刚接触编码的机械学生 :))

谢谢您的问候!

最佳答案

您可以预先将所有目录名收集到一个字符串中。然后在您的最终文件名中使用该字符串。

import os

collected_dirnames = ""
for root, dirs, files in os.walk("C:\\Users\\cemil.kocyigit\\Downloads\\Code=3,56"):
collected_dirnames = "-".join(dirs)

print(collected_dirnamee) # check if it is 2hat you want

# your code
for root, dirs, files in os.walk("C:\\Users\\cemil.kocyigit\\Downloads\\Code=3,56"):
if not files:
continue
for f in files:
base = os.path.basename(f)
text, extension = os.path.splitext(base)
os.rename(os.path.join(root, f),
os.path.join(root, "{}({}){}".format(text, collected_dirnames, extension)))

这是你想要的吗?它至少应该指向正确的方向

关于python - 将目录中的文件夹名称添加到文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66816992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com