صيغة PLS هي صيغة لتمثيل قوائم تشغيل ملفات ال multimedia ستجدها مستخدمة في برامج عديدة مثل Winamp و VLC وغيرها
المستودع: https://bitbucket.org/xmonader/pls/src
المهم ، أنا أفضل أن أسحب الملفات بالمجلد وليس ملف ملف فكنت في حاجة لعمل ملف صغير يقوم بتوليد/معالجة ملفات ال PLS ولحسن الحظ ملفات ال PLS هي عبارة عن ملف INI مع بعض التخصيص فبكل سهولة نستطيع إستخدام مكتبة configparser
from ConfigParser import ConfigParser
class PlaylistConfigParser(ConfigParser):
PLAYLISTSECTION="playlist"
def number_of_entries(self):
return self.getint(PlaylistConfigParser.PLAYLISTSECTION, "NumberOfEntries")
def ientries(self):
###NOTE: if the title isn't provided -> return the filename
for i in range(1, self.number_of_entries() +1 ):
path=self.get(PlaylistConfigParser.PLAYLISTSECTION, "File%d"%i)
title=path
try:
title=self.get(PlaylistConfigParser.PLAYLISTSECTION, "Title%d"%i)
except:
pass #already handled
yield (path, title )
def next_id(self):
return self.number_of_entries() +1
def add_entry(self, title, path):
entryid=self.next_id()
nentries=self.number_of_entries()
self.set(PlaylistConfigParser.PLAYLISTSECTION, "File%d"%entryid, path)
self.set(PlaylistConfigParser.PLAYLISTSECTION, "Title%d"%entryid, title)
#increment the number of files.
self.set(PlaylistConfigParser.PLAYLISTSECTION, "NumberOfEntries", nentries+1)
def entries(self):
return tuple(self.ientries)
def openlist(path):
pcp=PlaylistConfigParser()
pcp.read(path)
return pcp
def test():
f="/home/striky/Playlist.pls"
pcp=PlaylistConfigParser()
pcp.read(f)
print pcp.number_of_entries()
print pcp.entries()
if __name__=="__main__":
test()
كل ماعليك هو
import plsopenlist(PLAYLIST PATH)
استبدل PLAYLIST PATH بمسار ملف ال playlist
تستطيع عبر entries الحصول على مكونات القائمة (الملف والعنوان)
add_entry لإضافة ملف جديد
number_of_entries للحصول على عدد الملفات في قائمة التشغيل