2012-07-03 9 views
5

私は、ユーザーがビデオとオーディオファイルをアップロードするサイトで作業しています。アップロードすると、一般的なメタデータフィールドの一部をファイルから取り込む必要があります。私はHachoirを見つけましたが、それは良いようですが、問題では、メタデータの読み込みのためのパーサーを作成するために、ファイル形式またはストリームオブジェクトではなく、ファイル名が必要です。Python:Hachoirを使って、ファイルライクなオブジェクトのメタデータを抽出する方法は?

今私はウェブ開発のためにDjangoを使用しています。FileStorage APIを使い続けたいので、ファイルをCDNにうまくアップロードできます。

オブジェクトのようなファイルでHachoirを使用するには? は作品を提供しますが、「実際の」ファイルのみを提供します。

答えて

4

クイックや汚れスニペット:

from hachoir_core.error import HachoirError 
from hachoir_core.stream import InputIOStream 
from hachoir_parser import guessParser 
from hachoir_metadata import extractMetadata 


def metadata_for_filelike(filelike): 
    try: 
     filelike.seek(0) 
    except (AttributeError, IOError): 
     return None 

    stream = InputIOStream(filelike, None, tags=[]) 
    parser = guessParser(stream) 

    if not parser: 
     return None 

    try: 
     metadata = extractMetadata(parser) 
    except HachoirError: 
     return None 

    return metadata 

ちょうど良くエラー処理を必要とする:)

関連する問題