#Opens a directory and outputs a text file there that lists every subdirectory in it
import os
from shutil import move
pathname = raw_input('Enter path for music directory (ex. C:\\Music): ')
fn = raw_input('Enter desired file name for all converted files: ')
ft = raw_input('Enter the file extension you want the program to look for (ex. .jpg): ')
changepath = []
os.chdir(pathname)
for path, subdirs, files in os.walk(pathname):
for name in files:
changepath.append(os.path.join(path, name))
for idx, val in enumerate(changepath):
if val.lower().endswith(ft):
os.rename(val, (fn + ft))
print('Complete')
我正在使用它将音乐文件夹中的所有专辑插图重命名为一个东西,比如 new.jpg。
此代码在第 16 行“os.rename(val, (fn + ft))”上失败,错误为 183。当我使用“os.rename(val, val + (fn + ft))”时,它可以工作,但会调用文件类似 old.jpgnew.jpg 而不是 new.jpg 这正是我想要的。
当代码失败时(如上块所示),我在音乐目录中得到一个 new.jpg 文件。这是第一个子目录重命名的专辑封面,但第一个子目录之后没有专辑封面文件被重命名。成功重命名第一个图像后失败,但由于某种原因将其移出其原始目录并进入父“音乐”目录。