gpt4 book ai didi

Python - 搜索目录树,重命名某些文件

转载 作者:行者123 更新时间:2023-11-30 23:34:19 25 4
gpt4 key购买 nike

如何在 Python 中搜索子目录以查找与模式匹配的文件?如果我手动更改目录并运行脚本,我可以执行此操作,但我想从该树的根目录开始并运行脚本。我无法把它拉下来。

这是我在目录中所做的事情,就像一个魅力:

for root, subs, files in os.walk("."):
date = re.search("\w*.-\w*.-\w*.",file)
date_clean = date.group(0).strip()
hour = re.search("hr\d", file)
hour_clean = hour.group(0).strip()
new_name = "Podcast-" + date_clean + "-" + hour_clean +".mp3"
print "Changing",file,"to",new_name+"."
os.rename(file,new_name)

如果我更改到该目录并运行它,这将有效,但我想从根目录运行它。

D:\Files
\Podcasts
\August
\Show 1 AUG-12-2013 Portland hr 1.mp3
Show 2 AUG-12-2013 Portland hr 2.mp3

由于我的文件已保存一个多月,我想将它们全部重命名播客-MMM-DD-YYYY-hrX.mp3。我尝试使用 fnmatch.filter,但这只能帮助我找到目录,而不能进入其中并重命名这些文件。

我做错了什么?

最佳答案

重命名时需要使用绝对文件名:

os.rename(os.path.join(root, file), os.path.join(root, new_name))

您似乎也没有循环遍历文件列表;添加另一个 for 循环:

for root, subs, files in os.walk("."):
for file in files:

您可能希望避免使用 file 作为名称,它会隐藏内置类型。也许filename是更好的选择?

关于Python - 搜索目录树,重命名某些文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18210968/

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