понедельник, 16 июля 2007 г.

копирование файлов mp3 из плейлиста Windows Media Player

Предыстория.
Сотрудница долго отбирала из всех песен, которые содержаться на компе в свой плейлист. Все это делалось в Windows Media Player. ОС - Windows Server 2003. Потом она захотела записать свой плейлист на диск. В XP с этим проблем нет, но не в Windows Server 2003. Там встроенного прожига дисков нет. В Nero плейлист не переноситься естественно. Я почесал репу и подумал, что надо помочь.
Идея такова: парсить плейлист на предмет путей к мп3шным файлам, по полученным путям скопировать файлы в отдельную папку.
Плейлист в utf-8, но я чтобы не париться с кодировками сохранил его в cp1251. И вообще у него формат похожий на xml. Но я его парсил как текст, чтобы долго не заморачиваться (ведь с xml я имел только теоретическое знакомство :) ). Вообще слово парсил как-то в моем случае высокопарно звучит.
Короче код получился такой:


# -*- coding: cp1251 -*-
"""
программа парскит файл списка воспроизведения Wimdows Media Player.
Затем копирует файлы списка в определенную пользователем папку
"""
import re
from distutils.file_util import copy_file
patt = re.compile(r".:.+mp3")
to_dir = "f:\\tmp"
file_wpl = "C:\\Python25\\scrpt\\1.wpl"
opened_file_wpl = open(file_wpl, 'r');
for line in opened_file_wpl:
num = patt.findall(line)
for each in num:
print each
try:
copy_file(each, to_dir)
except BaseException:
continue

Комментариев нет: