Эта ошибка скрипта Python только для некоторых файлов при нумерации треков mp3
Это скрипт, который я сделал, чтобы поставить номера треков перед названием mp3s, чтобы треки были в правильном порядке, а не в алфавитном порядке.
Он работал нормально на всех (100+ папок / 1300+ песен), кроме трех папок.
Я не могу сказать, что WTF происходит здесь.
у какого тела есть идеи?
output =>
Введите путь к музыкальному файлу: / n> c: \ test
path_name = c: \ test \ 2 - Live Albums \ 1995 - MTV отключен \ Shooting Star.mp3
02 - Падающая звезда.mp3
path_name = c: \ test \ 2 - Live Albums \ 1995 - MTV отключен \ The Times Они A-Changin'.mp3
04 - времена, когда они - A-Changin'.mp 3 path_name = c:\test\2 - Live Albums\1995 - MTV Unplugged \ Tombstone Blues.mp3 01 - Tombstone Blues.mp3
path_name = c: \ test \ 2 - Live Albums \ 1995 - MTV отключен \ С Богом на нашей стороне.mp3
12 - С Богом на нашей стороне.mp3
path_name = c: \ test \ 1 - Студийные альбомы \1964 - Времена, когда они сменяются \ Ballad Of Hollis Brown.mp3
Traceback (последний вызов был последним):
Файл "C:/Users/Brian/Python Files/track_numbering_mp3.py", строка 45, в
music_track_numbering(путь)
Файл "C:/Users/Brian/Python Files/track_numbering_mp3.py", строка 39, в music_track_numbering
os.rename (join (root, name), join (root, track_number)) # переименовывает файл
WindowsError: [Ошибка 3] Системе не удается найти указанный путь
Процесс завершен с кодом выхода 1
#!usr/bin/env python
__author__ = 'Brian Kane'
"""This scripts takes a path argument to the root directory of the music files (mp3 here) and
adds a padded number corresponding to the track number. It will do this to all of the tracks in the folders
and subfolders. This allows for burning in the track order and not alphabetized. In theory I suppose you could
start at C:'\'"""
import os
from os.path import *
import string
from mutagen.mp3 import MP3
from mutagen.easyid3 import EasyID3
def music_track_numbering(path):
nums = []
for i in range(10): # just fills in nums to compare to track name
# to not double number
nums.append(str(i))
for root, dirs, files in os.walk(path): # walks through the data tree to get files
# print 'root = ', root
# print 'dirs = ', dirs
# print 'files = ',files
for name in files:
extension = os.path.splitext(name)[1][1:].strip().lower() # gets the file extension
if name[0] in nums: # don't double number
break
if extension == 'mp3':
# print 'name = ', name # test purposes
path_name = root +'\\' + name # path_name is complete path
print 'path_name = ', path_name # test purposes
track = EasyID3(path_name)['tracknumber'][0] # gets the track number from metadata
track_number = str(track).zfill(2) + ' - ' + name # pads leading zero and adds dash to name
os.rename(join(root,name),join(root,track_number)) # renames the file
print track_number # test purposes
# path = 'C:\\test' # this is a test path
path = raw_input('Enter the path to the music file:/n>')
music_track_numbering(path)