मैं यह पता लगाने कैसे पायथन में संपीड़ित फ़ाइल नीचे दी गई दो लाइनर के समान करने के लिए फ़ाइल आउटपुट लिखने की जरूरत का उपयोग कर पर्ल में gzip के लिए , यह "zipped.gz" फ़ाइल में ज़िपपीड फ़ाइलहेडल को जो कुछ भी प्रिंट करता है उसे संपीड़ित करने के लिए यूनिक्स gzip का उपयोग करता है।अजगर बराबर एक पाइप
मुझे पता है कि "आयात gzip" का उपयोग करने के लिए इस तरह अजगर में यह करने के लिए:
import gzip
zipped = gzip.open("zipped.gz", 'wb')
zipped.write("Hello world\n")
हालांकि, कि बेहद धीमी गति से होता है। प्रोफाइलर के मुताबिक, उस विधि का उपयोग करके मेरे रन टाइम का 9 0% हिस्सा लगता है क्योंकि मैं 200 जीबी असम्पीडित डेटा को विभिन्न आउटपुट फाइलों में लिख रहा हूं। मुझे पता है कि फाइल सिस्टम यहां समस्या का हिस्सा हो सकता है, लेकिन मैं इसके बजाय यूनिक्स/लिनक्स संपीड़न का उपयोग कर इसे रद्द करना चाहता हूं। यह आंशिक रूप से है क्योंकि मैंने सुना है कि इस मॉड्यूल का उपयोग करके डिकंप्रेसिंग भी धीमी है।
आप इसे शुद्ध पायथन में किया की जरूरत है, या आप अपने फाइल सिस्टम पर एक द्विआधारी में एक कॉल के लिए समझौता कर सकता है (पायथन में, आप उपप्रक्रिया मॉड्यूल का उपयोग चाहते हैं)? – ChristopheD
मैं इसे पायथन में नहीं करना पसंद करता क्योंकि शुद्ध पायथन विधियां बहुत धीमी हैं। – bu11d0zer
क्या आपने अपने 200 जीबी असम्पीडित डेटा पर शैल से gzip प्रोग्राम चलाया है? मैं उम्मीद करता हूं कि 9 0-100% सीपीयू उपयोग पर वॉलक्लॉक समय का थोड़ा सा हिस्सा लें - मेरे विंडोज बॉक्स पर यह प्रति जीबी लगभग 1 मिनट चलता है, जबकि पायथन जीजीआईपी मॉड्यूल प्रति जीबी लगभग 2 मिनट लेता है। – Dave