ऐसा इसलिए है क्योंकि ZipFile
आपको संपीड़न विधि निर्दिष्ट करने की आवश्यकता है। यदि आप इसे निर्दिष्ट नहीं करते हैं, तो यह संपीड़न विधि zipfile.ZIP_STORED
होने लगता है, जो केवल उन्हें संपीड़ित किए बिना फ़ाइलों को संग्रहीत करता है। आपको zipfile.ZIP_DEFLATED
होने की विधि निर्दिष्ट करने की आवश्यकता है। इसके लिए आपको zlib
मॉड्यूल स्थापित करने की आवश्यकता होगी (यह आमतौर पर डिफ़ॉल्ट रूप से स्थापित है)।
import zipfile
def main(archive_list=[],zfilename='default.zip'):
print zfilename
zout = zipfile.ZipFile(zfilename, "w", zipfile.ZIP_DEFLATED) # <--- this is the change you need to make
for fname in archive_list:
print "writing: ", fname
zout.write(fname)
zout.close()
if __name__ == '__main__':
main()
स्रोत
2010-11-12 16:01:37
क्या एक भयानक डिफ़ॉल्ट:
पर अधिक व्यापक प्रलेखन देख सकते हैं! क्यूं कर?! – gabe
क्योंकि 'zlib' मॉड्यूल हमेशा उपलब्ध नहीं है, खासकर सैंडबॉक्स किए गए इंस्टॉलेशन में। –
मैं ज़िप फ़ाइलों के साथ एक ही मुद्दे में भाग गया। मुझे यह मानना है कि मेरी गलती पाइथन डॉक्स से उदाहरण कोड का प्रयास करने से पहले दस्तावेज़ीकरण नहीं पढ़ रही थी। मुझे लगता है कि उदाहरण कोड में इसे कम भ्रमित करने के लिए ZIP_DEFLATED पैरामीटर शामिल होना चाहिए। –