2014-12-22 1 views
0

Недавно я загрузил большое количество файлов mkv с именами, отформатированными как «South Park S01E01 Cartman Получает аналоговый зонд (640x480) [Phr0stY] .mkv». Я хочу удалить весь текст, кроме фактических имен эпизодов. Вот код, который у меня есть.Переименование нескольких видеофайлов с использованием RE и OS

rootdir = '/Users/me/Documents/Test/' 
for ii in os.listdir(rootdir): 
    try: 
     for kk in os.listdir(rootdir + ii): 
      try: 
        new = re.sub('South\sPark\sS[0-9][0-9]E[0-9][0-9]\s', '', kk) 
        new1 = re.sub('\s\([0-9]+x[0-9]+\)\s\[Phr0stY\]', '', new) 
        os.rename(rootdir + ii + kk, rootdir + ii + new1) 
      except: 
        pass 
    except: 
     pass 

Все отлично до работает до os.rename линии, где она останавливается и заставляет положение except выполнить. Когда я печатаю new1, возвращается правильная строка. Кто-нибудь может понять, почему переименование не работает?

ответ

1

Вы должны использовать os.path.join для объединения компонентов пути к файлу, а не +.

Смежные вопросы