6

我刚刚写了一个python脚本来摆脱文件名中一些烦人的后缀,

这是我的代码:

import os

for root, dirs, files in os.walk("path"):

    for filename in files:

        if filename.endswith("[AnnoyingTag].mov"):

            os.rename(filename, filename[:-18]+'.mov')

但我在最后一行得到了错误:

OSError: [Errno 2] No such file or directory

我很确定我有正确的路径,因为我可以正确打印出所有文件名。

...真的不知道为什么这行不通。

感谢您的回答

4

3 回答 3

13

加入路径的首选方法是使用os.path.join, 更改此行:

os.rename(filename, filename[:-18]+'.mov')

用这个替换它:

os.rename(os.path.join(root, filename), os.path.join(root, filename[:-18]+'.mov'))
于 2013-06-23T05:22:45.170 回答
8

你可以更换

os.rename(filename, filename[:-18]+'.mov')

os.rename(root + os.sep + filename, root + os.sep + filename[:-18]+'.mov')
于 2013-06-23T05:18:57.340 回答
0

Fixed:

import os

for root, dirs, files in os.walk("path"):
    for filename in files:
        if filename.endswith("[AnnoyingTag].mov"):
            os.rename(root+'\\'+filename, root+'\\'+filename[:-18]+'.mov')

I think your problem is that the files you're renaming aren't in the current working directory.

于 2013-06-23T05:16:39.217 回答