Python os.rename和os.walk在一起

Lin*_*Wen 6 python filenames os.walk

我刚写了一个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')
Run Code Online (Sandbox Code Playgroud)

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

OSError: [Errno 2] No such file or directory
Run Code Online (Sandbox Code Playgroud)

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

......真的不知道为什么这不起作用.

谢谢你的回答

Ósc*_*pez 11

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

os.rename(filename, filename[:-18]+'.mov')
Run Code Online (Sandbox Code Playgroud)

替换为:

os.rename(os.path.join(root, filename), os.path.join(root, filename[:-18]+'.mov'))
Run Code Online (Sandbox Code Playgroud)


su-*_*su- 8

你可以替换

os.rename(filename, filename[:-18]+'.mov')
Run Code Online (Sandbox Code Playgroud)

os.rename(root + os.sep + filename, root + os.sep + filename[:-18]+'.mov')
Run Code Online (Sandbox Code Playgroud)