0
#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。“WindowsError 183”上os.rename()
这段代码在第16行“os.rename(val,(fn + ft))”上出错,错误为183,当我使用“os.rename(val,val +(fn + ft))”时,它将这个文件称为old.jpgnew.jpg,而不是new.jpg,这正是我想要的。
当代码失败时(写在上面的块中),我在音乐目录中得到一个new.jpg文件。这是第一个子目录中重命名的专辑图片,但第一个子目录重命名后没有专辑图稿文件。成功重命名第一张图像后失败,但由于某种原因将其移出其原始目录并进入父级“音乐”目录。
这就是我试图修复说“os.rename(val,val +(fn + ft))”。 问题在于,旧文件名是val的一部分。 – SciurusDoomus 2013-03-09 01:20:23
@SciurusDoomus好吧,我正在查看代码块,并希望成为最新的代码。为您更新了答案。 – cwgem 2013-03-09 01:27:18
不幸的是我得到了一个误报。当我查看这些文件夹时,我重命名的文件只有“folder.jpg”附加到文件名上。该文件也从原来的目录中跳到它上面的文件夹中。 请参阅http://imgur.com/wvjovGW – SciurusDoomus 2013-03-09 02:24:01