#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» on 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
@SciurusDoomus Хорошо, я смотрел блок кода и ожидал, что это самый последний код. Обновленный ответ для вас. – cwgem
К сожалению, я получаю ложный результат. Когда я смотрю на папки, файл, который я переименовал, просто имеет «folder.jpg», прикрепленный к имени файла. Файл также удаляется из исходного каталога в тот, который находится над ним. См. Здесь http://imgur.com/wvjovGW – SciurusDoomus