Python Language
जिप अभिलेखागार के साथ काम करना
खोज…
वाक्य - विन्यास
- आयात zipfile
- वर्ग zipfile। ZIPFile ( फ़ाइल, मोड = 'r', संपीड़न = ZIP_STORED, allowZip64 = True )
टिप्पणियों
यदि आप ऐसी फ़ाइल खोलने का प्रयास करते हैं जो ज़िप फ़ाइल नहीं है, तो अपवाद zipfile.BadZipFile
उठाया जाता है।
पायथन 2.7 में, यह वर्तनी zipfile.BadZipfile
, और इस पुराने नाम को Python 3.2+ में नए के साथ बरकरार रखा गया है
ज़िप फ़ाइलें खोलना
शुरू करने के लिए, zipfile
मॉड्यूल आयात करें, और फ़ाइल नाम सेट करें।
import zipfile
filename = 'zipfile.zip'
ज़िप अभिलेखागार के साथ काम करना फ़ाइलों के साथ काम करने के समान है, आप ज़िप फ़ाइल को खोलकर ऑब्जेक्ट बनाते हैं, जो फ़ाइल को फिर से बंद करने से पहले आपको इस पर काम करने देता है।
zip = zipfile.ZipFile(filename)
print(zip)
# <zipfile.ZipFile object at 0x0000000002E51A90>
zip.close()
पायथन 2.7 में और 3.2 से अधिक पायथन 3 संस्करणों में, हम संदर्भ प्रबंधक के with
उपयोग कर सकते हैं। हम फ़ाइल को "रीड" मोड में खोलते हैं, और फिर फ़ाइलनाम की एक सूची प्रिंट करते हैं:
with zipfile.ZipFile(filename, 'r') as z:
print(zip)
# <zipfile.ZipFile object at 0x0000000002E51A90>
जिपफाइल सामग्री की जांच करना
जिपफाइल की सामग्री का निरीक्षण करने के कुछ तरीके हैं। आप उपयोग कर सकते हैं printdir
बस को भेजी गई जानकारी की एक किस्म प्राप्त करने के लिए stdout
with zipfile.ZipFile(filename) as zip:
zip.printdir()
# Out:
# File Name Modified Size
# pyexpat.pyd 2016-06-25 22:13:34 157336
# python.exe 2016-06-25 22:13:34 39576
# python3.dll 2016-06-25 22:13:34 51864
# python35.dll 2016-06-25 22:13:34 3127960
# etc.
हम namelist
विधि के साथ फ़ाइल नाम की एक सूची भी प्राप्त कर सकते हैं। यहाँ, हम सूची को प्रिंट करते हैं:
with zipfile.ZipFile(filename) as zip:
print(zip.namelist())
# Out: ['pyexpat.pyd', 'python.exe', 'python3.dll', 'python35.dll', ... etc. ...]
namelist
बजाय, हम infolist
विधि को कॉल कर सकते हैं, जो ZipInfo
ऑब्जेक्ट्स की एक सूची देता है, जिसमें प्रत्येक फ़ाइल के बारे में अतिरिक्त जानकारी होती है, उदाहरण के लिए टाइमस्टैम्प और फ़ाइल का आकार:
with zipfile.ZipFile(filename) as zip:
info = zip.infolist()
print(zip[0].filename)
print(zip[0].date_time)
print(info[0].file_size)
# Out: pyexpat.pyd
# Out: (2016, 6, 25, 22, 13, 34)
# Out: 157336
निर्देशिका में ज़िप फ़ाइल सामग्री निकालना
ज़िप फ़ाइल की सभी फ़ाइल सामग्री निकालें
import zipfile
with zipfile.ZipFile('zipfile.zip','r') as zfile:
zfile.extractall('path')
यदि आप चाहते हैं कि निकालने वाली एकल फ़ाइलें अर्क विधि का उपयोग करें, तो यह इनपुट पैरामीटर के रूप में नाम सूची और पथ लेती है
import zipfile
f=open('zipfile.zip','rb')
zfile=zipfile.ZipFile(f)
for cont in zfile.namelist():
zfile.extract(cont,path)
नए अभिलेखागार बनाना
लिखने के मोड के साथ नया संग्रह ओपन जिपफाइल बनाने के लिए।
import zipfile
new_arch=zipfile.ZipFile("filename.zip",mode="w")
इस संग्रह में फ़ाइलों को जोड़ने के लिए लिखने () विधि का उपयोग करें।
new_arch.write('filename.txt','filename_in_archive.txt') #first parameter is filename and second parameter is filename in archive by default filename will taken if not provided
new_arch.close()
यदि आप संग्रह में बाइट्स के स्ट्रिंग लिखना चाहते हैं तो आप रिटेस्ट्र () विधि का उपयोग कर सकते हैं।
str_bytes="string buffer"
new_arch.writestr('filename_string_in_archive.txt',str_bytes)
new_arch.close()