#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 в каталоге музыки. Это переименованная обложка альбома первого подкаталога, но никакие файлы обложек альбомов после первого не переименовываются. После успешного переименования первого изображения происходит сбой, но по какой-то причине он перемещается из исходного каталога в родительский каталог «Музыка».