Zanurkuj w Pythonie/Źródła/fileinfo.py: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Piotr (dyskusja | edycje)
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