簡體   English   中英

Python:使用Hachoir,如何提取文件類對象的元數據?

[英]Python: Using Hachoir, how extract metadata for file-like objects?

我正在使用用戶上傳視頻和音頻文件的網站,我上傳時,必須從文件中填充一些常見的元數據字段。 我找到了Hachoir並且看起來很好,但是有問題的是,為元數據讀取創建解析器,需要的是文件名,而不是文件類或流對象。

現在我正在使用Django進行Web開發,我想繼續使用FileStorage API,因此可以很好地將文件上傳到CDN。

如何使用Hachoir文件像對象? 它們提供的示例代碼有效,但僅適用於“真實”文件。

快速和臟的片段:

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

只需要更好的錯誤處理:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM