Форум сайта python.su
IDLE (Python 3.10 64-bit)
Windows 10
—————————-
Есть каталог с файлами плейлистов.
Все файлы плейлистов с расширением .m3u и они имеют разные названия.
Как изменить названия всех этих плейлистов,
удалять поочерёдно старые названия и пронумеровать их по порядку так: 1.m3u 2.m3u 3.m3u и т.д.
Офлайн
Можете попробовать
DIRECTORY=r“c:\Users\людмила\PycharmProjects\Laifhak\Yrok_2.2”
def rename_files(find_directory):
for root, dirs,files in os.walk(find_directory):
n=1
for name in files:
rename_file(root,name,n)
n=n+1
def rename_file(root, name,n):
# print(root)
valid_name= get_valid_name(name,n)
old_file=os.path.join(root,name)
new_file=os.path.join(root,valid_name)
os.rename(old_file,new_file)
print('vse cdelali')
def get_valid_name(name,n):
# name=name.replace(“_27.flac”,“_ред_27.flac”)
name=str(n) + ‘.m3u’
return name
if __name__== ‘__main__’:
rename_files(DIRECTORY)
Офлайн
lyuda@
Можете попробовать
[code python]сюда вставлять код для правильного отображения[/code]
Офлайн
#Переименование файлов import os DIRECTORY=r"c:\Users\людмила\PycharmProjects\Laifhak\Yrok_2.2" def rename_files(find_directory): for root, dirs,files in os.walk(find_directory): n=1 for name in files: rename_file(root,name,n) n=n+1 def rename_file(root, name,n): # print(root) valid_name= get_valid_name(name,n) old_file=os.path.join(root,name) new_file=os.path.join(root,valid_name) os.rename(old_file,new_file) print('vse cdelali') def get_valid_name(name,n): name=str(n) + '.m3u' return name if __name__== '__main__': rename_files(DIRECTORY)
Офлайн
Спасибо lyuda@
Скрипт работает.
——————
В Вашем скрипте я получаю это:
Так получил: 3.mp3
6.mp3
———
А так нужно: 3 - Great White - Save Your Love.mp3
6 - Lynyrd Skynyrd - Simple Man.mp3
то есть после цифры, в начале названия пробел чёрточка пробел.
————————————————————-
1. Должно остаться старое название песни и исполнителя.
2. Что ещё можно добавить в скрипт, чтобы он одновременно переименовывал и другие расширения файлов помимо mp3?
Всё в этой папке (могут быть также другие расширения файлов: dsf и flac)
То есть расширения должны остаться исходные.
Отредактировано satfan (Апрель 6, 2022 11:01:53)
Офлайн
Поставьте строку вместо старой
name=str(n) + ‘ - ’ + name
Офлайн
Спасибо lyuda@
Эта строка выдаёт ошибку:
name = str(n) + ’ - ’ + name
Отредактировано satfan (Апрель 6, 2022 12:00:03)
Офлайн
Все работает, можете поставить двойные кавычки.
Проверьте позицию, куда поставили строку
Офлайн
def get_valid_name(name,n): name=str(n) + ' - ' + name return name
Офлайн
Спасибо lyuda@
Всё работает.
Удачи.
Офлайн