Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 5, 2022 10:13:07

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Скрипт на Python - пронумеровать файлы песен.

IDLE (Python 3.10 64-bit)
Windows 10
—————————-
Есть каталог с файлами музыки: Название.flac
(могут быть также другие расширения файлов: dsf или mp3)
Все файлы песен с расширением ( .flac) и они имеют разные названия.
Как изменить названия всех этих песен, к старому названию добавить номера по порядку так:
1-Название.flac
2-Название.flac
3-Название.flac
и т.д.
То есть должно к каждому названию впереди поставить номер по порядку и - 1- 2-
Есть такой скрипт:

 # -*- coding: utf-8 -*-
import os
 
path = r"E:\__Moi_scripti\13_rename_m3u\Новая папка\\"
f = os.listdir(path)
n = 0
your_name = "Плейлист"
format = '.m3u'
 
for i in f:
    oldname = path + f[n]
    print(oldname)
    newname = path + your_name + str(n + 1) + format
    os.rename(oldname, newname)
    print(oldname, '======>', newname)
 
    n += 1
Но этот скрипт работает по другому, его итог;
Плейлист1.m3u
Плейлист2.m3u
Плейлист3.m3u
————————–
Прошу помощи.

Офлайн

#2 Апрель 5, 2022 12:36:49

lyuda@
Зарегистрирован: 2021-11-18
Сообщения: 20
Репутация: +  1  -
Профиль   Отправить e-mail  

Скрипт на Python - пронумеровать файлы песен.

Можете попробовать

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=0
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):
str_1 = str(n ) + ‘ - ’
name=str_1 + name
return name

if __name__== ‘__main__’:
rename_files(DIRECTORY)

Офлайн

#3 Апрель 5, 2022 12:58:17

satfan
Зарегистрирован: 2019-02-02
Сообщения: 140
Репутация: +  -2  -
Профиль   Отправить e-mail  

Скрипт на Python - пронумеровать файлы песен.

Спасибо lyuda@
Прошу Ваш код вставить правильно в редактор (кнопка Code Python - есть)
А то у меня выдаёт ошибки:

 import os
DIRECTORY = r"C:\Users\Пк\Desktop\22\Новая папка\\"
def rename_files(find_directory):
    for root, dirs, files in os.walk(find_directory):
    n = 0
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):
    str_1 = str(n) +  - 
name = str_1 + name
return name
if __name__ == __main__:
    rename_files(DIRECTORY)
Ошибка в этой строке:
valid_name = get_valid_name(name, n)

Отредактировано satfan (Апрель 5, 2022 13:05:25)

Офлайн

#4 Апрель 7, 2022 09:04:39

lyuda@
Зарегистрирован: 2021-11-18
Сообщения: 20
Репутация: +  1  -
Профиль   Отправить e-mail  

Скрипт на Python - пронумеровать файлы песен.

 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
    return
def rename_file(root, name, n):
    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)
    return
def get_valid_name(name, n):
    name = str(n) + ' - ' + name
    return name
if __name__ == '__main__':
    rename_files(DIRECTORY)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version