#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のような1つの名前に変更しています。
このコードは16行目「os.rename(val、(fn + ft))」でエラー183で失敗します。「os.rename(val、val +(fn + ft))」を使用すると機能しますが、ファイルが呼び出されます。私が欲しいものであるnew.jpgの代わりにold.jpgnew.jpgのようなもの。
コードが失敗すると(上のブロックのように記述されます)、musicディレクトリにnew.jpgファイルがあります。これは最初のサブディレクトリの名前が変更されたアルバムアートワークですが、最初のサブディレクトリ以降のアルバムアートワークファイルの名前は変更されていません。最初の画像の名前を変更すると失敗しますが、何らかの理由で元のディレクトリから親の「音楽」ディレクトリに移動します。