2009-06-09 9 views
11

एक आत्म-सिखाए गए पायथन शौकिया के रूप में, मैं मानक प्रारूपों का उपयोग करके बाइनरी फ़ाइलों को आयात और निर्यात करने के बारे में कैसे सीखूंगा?पाइथन में बाइनरी फ़ाइल आईओ, कहां से शुरू करें?

मैं एक स्क्रिप्ट को कार्यान्वित करना चाहता हूं जो ईप्यूब ईबुक (एक ज़िप में एक्सएचटीएमएल + सीएसएस) लेता है और अमेज़ॅन किंडल को इसे पढ़ने की अनुमति देने के लिए इसे एक mobipocket (Palmdoc) प्रारूप में परिवर्तित करता है (एक बड़े हिस्से के रूप में) प्रोजेक्ट जिसे मैं काम कर रहा हूं)।

ईबुक पुस्तकालयों के प्रबंधन के लिए पहले से ही एक अद्भुत ओपन-सोर्स प्रोजेक्ट है: Calibre। मैं सीखने/आत्म-शिक्षण अभ्यास के रूप में इसे अपने आप लागू करने की कोशिश करना चाहता था। मैंने अपने python source code को देखना शुरू कर दिया और महसूस किया कि मुझे नहीं पता कि क्या हो रहा है। बेशक, किसी भी चीज़ पर आत्म-सिखाए जाने का बड़ा खतरा यह नहीं जानता कि आप क्या जानते हैं।

इस मामले में, मुझे पता है कि मैं इन बाइनरी फ़ाइलें और कैसे अजगर कोड में उनके साथ काम करने के बारे में ज्यादा पता नहीं है (struct?)। लेकिन मुझे लगता है कि मुझे शायद सामान्य रूप से बाइनरी फाइलों के बारे में बहुत सारी जानकारी मिल रही है और मुझे कुछ मदद चाहिए कि उनके साथ काम कैसे करें। मोबी/पाल्मडोक हेडर के Here is a detailed overview। धन्यवाद!

संपादित करें: कोई प्रश्न नहीं, अच्छा बिंदु! क्या आपके पास बाइनरी फाइलों के साथ काम करने का बुनियादी ज्ञान हासिल करने के बारे में कोई सुझाव है? पायथन-विशिष्ट सहायक होगा लेकिन अन्य दृष्टिकोण भी उपयोगी हो सकते हैं।

टॉम: प्रश्न के रूप में संपादित, जोड़ा परिचय/बेहतर शीर्षक

+4

तो आपका सटीक प्रश्न क्या है? – NicDumZ

उत्तर

10

आप शायद, struct मॉड्यूल के साथ शुरू कर देना चाहिए जैसा कि आप अपने प्रश्न में की ओर इशारा किया, और निश्चित रूप से, एक द्विआधारी के रूप में फ़ाइल खोलें।

असल में आप बस फ़ाइल की शुरुआत में शुरू करते हैं और इसे टुकड़े से अलग टुकड़ा चुनते हैं। यह एक परेशानी है, लेकिन एक बड़ी समस्या नहीं है। अगर फ़ाइलें संकुचित या एन्क्रिप्टेड हैं, तो चीजें अधिक कठिन हो सकती हैं। यह उपयोगी है अगर आप उस फ़ाइल से शुरू करते हैं जिसे आप जानते हैं ताकि आप हर समय अनुमान लगा रहे हों।

इसे थोड़ा सा प्रयास करें, और शायद आप अधिक विशिष्ट प्रश्न विकसित करेंगे।

0
खुद के अजगर उपकरण है कि द्विआधारी फाइलों के साथ काम, this will get you going शिक्षण के लिए

। मज़ा भी। बाइनरी, ज़िप, छवियों के साथ व्यायाम ... बहुत कुछ।

2

यदि आप बाइनरी फाइलों का निर्माण और विश्लेषण करना चाहते हैं तो संरचना मॉड्यूल आपको बुनियादी उपकरण देगा, लेकिन यह बहुत अनुकूल नहीं है, खासकर यदि आप ऐसी चीजों को देखना चाहते हैं जो बाइट्स की पूरी संख्या नहीं हैं।

कुछ मॉड्यूल हैं जो मदद कर सकते हैं, जैसे BitVector, bitarray और bitstring। (मैं bitstring का पक्ष लेता हूं, लेकिन मैंने इसे लिखा और इसलिए पक्षपातपूर्ण हो सकता है)।

पार्सिंग बाइनरी प्रारूपों के लिए hachoir मॉड्यूल बहुत अच्छा है, लेकिन मुझे संदेह है कि यह आपकी वर्तमान आवश्यकताओं के लिए बहुत उच्च स्तर है।

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