2012-07-03 6 views
5

मैं ऐसी साइट पर काम कर रहा हूं जहां उपयोगकर्ता वीडियो और ऑडियो फाइल अपलोड करते हैं, जब मैं अपलोड करता हूं, तो कुछ सामान्य मेटाडाटा फ़ील्ड फ़ाइल से पॉप्युलेट किए जाने चाहिए। मुझे Hachoir मिला है और यह अच्छा लगता है, लेकिन एक समस्या के साथ, मेटाडेटा पढ़ने के लिए एक पार्सर बनाने के लिए, फ़ाइल की तरह या स्ट्रीम ऑब्जेक्ट की बजाय फ़ाइल नाम आवश्यक है।पायथन: हैचिर का उपयोग, फ़ाइल जैसी वस्तुओं के लिए मेटाडेटा कैसे निकालें?

अभी मैं वेब विकास के लिए Django का उपयोग कर रहा हूं, और मैं फ़ाइलस्टॉरेज एपीआई का उपयोग करना जारी रखूंगा, इसलिए फ़ाइलों को सीडीएन में अच्छी तरह से अपलोड किया जा सकता है।

हाचॉयर का उपयोग वस्तुओं की तरह फ़ाइल के साथ कैसे करें? sample code वे काम प्रदान करते हैं, लेकिन केवल "वास्तविक" फ़ाइलों के लिए।

उत्तर

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 

बस बेहतर त्रुटि हैंडलिंग की जरूरत है :)

संबंधित मुद्दे

 संबंधित मुद्दे