Zanurkuj w Pythonie/Źródła/fileinfo.py: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m kat. |
Nie podano opisu zmian |
||
Linia 1:
<source lang='python'>
#-*- coding: utf-8 -*-
"""Framework do pobierania matedanych specyficznych dla danego typu pliku.▼
▲u"""Framework do pobierania matedanych specyficznych dla danego typu pliku.
Można utworzyć instancję odpowiedniej klasy podając jej nazwę pliku w konstruktorze.
Linia 36 ⟶ 38:
def stripnulls(data):
u"usuwa białe znaki i nulle"
return data.replace("\00", " ").strip()
class FileInfo(dict):
u"przechowuje metadane pliku"
def __init__(self, filename=None):
dict.__init__(self)
Linia 46 ⟶ 48:
class MP3FileInfo(FileInfo):
u"przechowuje znaczniki ID3v1.0 MP3"
tagDataMap = {"title" : ( 3, 33, stripnulls),
"artist" : ( 33, 63, stripnulls),
Linia 55 ⟶ 57:
def __parse(self, filename):
u"parsuje znaczniki ID3v1.0 z pliku MP3"
self.clear()
try:
Linia 76 ⟶ 78:
def listDirectory(directory, fileExtList):
u"zwraca listę obiektów zawierających metadane dla plików o podanych rozszerzeniach"
fileList = [os.path.normcase(f) for f in os.listdir(directory)]
fileList = [os.path.join(directory, f) for f in fileList \
if os.path.splitext(f)[1] in fileExtList]
def getFileInfoClass(filename, module=sys.modules[FileInfo.__module__]):
u"zwraca klasę metadanych pliku na podstawie podanego rozszerzenia"
subclass = "%sFileInfo" % os.path.splitext(filename)[1].upper()[1:]
return hasattr(module, subclass) and getattr(module, subclass) or FileInfo
|