मैं फ़ाइल के प्रकार के आधार पर एक पायथन लिपि में अलग व्यवहार करना चाहता हूं। मैं फ़ाइल नाम एक्सटेंशन का उपयोग नहीं कर सकता क्योंकि यह उपस्थित या भ्रामक नहीं हो सकता है। मैं file
उपयोगिता को कॉल कर सकता हूं और आउटपुट पार्स कर सकता हूं, लेकिन मैं पोर्टेबिलिटी के लिए एक पायथन बिल्टिन का उपयोग करूंगा।क्या यूनिक्स "फ़ाइल" उपयोगिता का कोई अजगर-समतुल्य है?
तो क्या पाइथन में कुछ भी है जो फ़ाइल के प्रकार को अपनी सामग्री से कम करने के लिए हेरिस्टिक का उपयोग करता है?
'libmagic' सभी फ़ाइलों के लिए बिल्कुल सही नहीं है। यह फ़ाइल हेडर में "जादू संख्या" को देखता है। स्रोत कोड जैसे टेक्स्ट फाइलों में हेडर नहीं हैं और libmagic को जंगली अनुमान लगाने का सहारा लेना है ... यह उनके बारे में बहुत गलत हो सकता है। –
इस तरह की सभी सामग्री-स्नीफिंग दृष्टिकोण का खतरा है। अक्सर 'स्वीकार्य' फ़ाइल प्रकारों की संख्या libmagic द्वारा ज्ञात सूची से छोटी है, इस मामले में विज्ञापन-ऐप ऐप-स्तरीय स्नीफिंग बेहतर शर्त हो सकती है, लेकिन सामान्य मामले के लिए आप इसके बारे में बहुत कुछ नहीं कर सकते हैं। – bobince
libmagic वह फ़ाइल है जो फ़ाइल का उपयोग करती है, इसलिए फ़ाइल के करीब मिलान ढूंढना बहुत मुश्किल है। –