आप शायद फ़ाइल एक्सटेंशन की परवाह किए बिना अपलोड के MIME प्रकार का पता लगाना चाहते हैं, और यह अक्सर "मैजिक नंबर" या फ़ाइल की वास्तविक प्रकृति को इंगित करने वाले अन्य बिट पैटर्न का पता लगाने के लिए फ़ाइल हेडर को पढ़कर किया जाता है। अक्सर टेक्स्ट फाइलें एक एज केस होती हैं, जहां कोई हेडर नहीं मिलता है और पहले x बाइट्स प्रिंट करने योग्य ASCII या यूनिकोड होते हैं।
जबकि इसमें गोता लगाने के लिए एक खरगोश का छेद है, कुछ पायथन पुस्तकालय हैं जो आपके लिए ऐसा करेंगे। उदाहरण के लिए:https://github.com/ahupp/python-magic फ़ाइल सामग्री के अनुसार केवल माइम प्रकार का अनुमान लगाकर आपकी आवश्यकताओं के लिए काम करेगा, जिसे आप तब उन प्रकारों से मिलाएंगे जिन्हें आप स्वीकार करना चाहते हैं।
आपकी आवश्यकताओं के लिए विशिष्ट उदाहरण कोड का कुछ संबंधित सेट यहां पाया जा सकता है:https://stackoverflow.com /a/28306825/7341881
संपादित करें:एडी का समाधान कार्यक्षमता समकक्ष है; पायथन-मैजिक लिबमैजिक को लपेटता है, जो कि लिनक्स की मूल "फाइल" कमांड में टैप करता है। यदि आप सबप्रोसेस रूट जाने का निर्णय लेते हैं, तो अतिरिक्त सावधानी बरतें कि आप उपयोगकर्ता इनपुट (जैसे उपयोगकर्ता द्वारा प्रदान किया गया फ़ाइल नाम) को अनुचित तरीके से साफ करके सुरक्षा भेद्यता नहीं बना रहे हैं। इससे आपके सर्वर के रनटाइम परिवेश में मनमानी पहुंच प्रदान करने वाला हमला हो सकता है।