好的,这很奇怪,也许很尴尬。 我制作了一个脚本,所以我可以更改字幕文件的结尾以保持一致性。 基本上它将A.X.str替换为A.Y.str。它在一个文件夹中完美运行。
然后我决定制作它的递归版本,这样我就可以在我拥有的任何文件夹上进行,无论这些剧集在一起,是按季节分开还是在每个路径上分开。
我真的不知道如何或为什么,但它将它到达的所有文件发送到我正在使用的根文件夹,直到它停止引发FileExistsError。
我使用的代码位是:
def rewrite(folder, old, new):
for f in next(os.walk(folder))[2]:
os.rename(os.path.join(folder, f),
os.path.join(path, f.replace(old, new)))
for f in next(os.walk(folder))[1]:
x = os.path.join(folder, f)
rewrite(x, old, new)
老' " A.X.str",' new'是" A.Y.str"和文件夹是根文件夹的完整路径" C:\ Series \ Serie Name"。
为什么这项工作不是递归的?代码的第一位(First FOR循环)可以在单个文件夹中正常工作。 问题是" next"我用来获取文件和文件夹的名称?
答案 0 :(得分:2)
您向我们展示的代码是在重命名目标中使用path
变量 - 而应该是folder
变量。