'टार' उपयोगिता मूल रूप से यूनिक्स ऑपरेटिंग सिस्टम के लिए पेश की गई थी। इसका उद्देश्य एक संग्रह फ़ाइल में कई फाइलें एकत्र करना है जिसे अक्सर टारबॉल कहा जाता है जिससे फाइलों को वितरित करना आसान हो जाता है। पायथन के मानक पुस्तकालय के टारफाइल मॉड्यूल में कार्य टार अभिलेखागार बनाने और आवश्यकतानुसार टारबॉल से निकालने में मदद करते हैं। अभिलेखागार का निर्माण gzip, bz2 और lzma संपीड़न के साथ या बिना किसी संपीड़न के किया जा सकता है।
इस मॉड्यूल में परिभाषित मुख्य कार्य मुख्य () है जिसके उपयोग से टार फ़ाइल में लिखना या उससे पढ़ना पूरा किया जाता है।
खोलें ()
यह फ़ंक्शन फ़ाइल नाम के अनुरूप एक TarFile ऑब्जेक्ट देता है जो इसे पैरामीटर के रूप में प्रदान किया जाता है। फ़ंक्शन को मोड नामक एक अन्य पैरामीटर की आवश्यकता होती है, जो डिफ़ॉल्ट रूप से 'r' होता है जो बिना किसी संपीड़न का संकेत देता है। अन्य मोड नीचे सूचीबद्ध हैं
Sr.No. | मोड और क्रिया |
---|---|
1 | 'r' या 'r:*' पारदर्शी संपीड़न के साथ पढ़ने के लिए खुला। |
2 | 'r:' संपीड़न के बिना पढ़ने के लिए खुला। |
3 | 'r:gz' gzip संपीड़न के साथ पढ़ने के लिए खोलें। |
4 | 'r:bz2' bzip2 संपीड़न के साथ पढ़ने के लिए खोलें। |
5 | 'r:xz' lzma संपीड़न के साथ पढ़ने के लिए खोलें। |
6 | 'x' या 'x:' बिना कंप्रेशन के विशेष रूप से एक टैरिफाइल बनाएं। |
7 | 'x:gz' gzip कम्प्रेशन के साथ एक tarfile बनाएँ। |
8 | 'x:bz2' bzip2 संपीड़न के साथ एक tarfile बनाएँ। |
9 | 'x:xz' lzma संपीड़न के साथ एक tarfile बनाएँ। |
10 | 'a' या 'a:' बिना किसी संपीड़न के जोड़ने के लिए खुला। |
11 | 'w' या 'w:' असम्पीडित लेखन के लिए खुला। |
12 | 'w:gz' gzip संपीड़ित लेखन के लिए खोलें। |
13 | 'w:bz2' bzip2 संपीड़ित लेखन के लिए खोलें। |
14 | 'w:xz' lzma संपीड़ित लेखन के लिए खोलें। |
मॉड्यूल TarFile वर्ग को परिभाषित करता है। ओपन () फ़ंक्शन के बजाय, टैरफाइल ऑब्जेक्ट को कंस्ट्रक्टर को कॉल करके इंस्टेंट किया जा सकता है।
TarFile()
इस कंस्ट्रक्टर को एक फ़ाइल नाम और मोड पैरामीटर की भी आवश्यकता होती है। मोड पैरामीटर के संभावित मान ऊपर दिए गए हैं।
इस वर्ग की अन्य विधियाँ इस प्रकार हैं
जोड़ें ()
यह विधि संग्रह में एक फ़ाइल जोड़ती है। विधि को एक नाम की आवश्यकता होती है जो फ़ाइल, निर्देशिका, प्रतीकात्मक लिंक, शॉर्टकट आदि का नाम हो सकता है। निर्देशिकाओं को डिफ़ॉल्ट रूप से पुनरावर्ती रूप से जोड़ा जाता है। पुनरावर्ती जोड़ को रोकने के लिए पुनरावर्ती पैरामीटर को गलत पर सेट करें।
ऐडफाइल ()
यह विधि संग्रह में TarInfo ऑब्जेक्ट जोड़ती है।
निकालें ()
यदि कोई अन्य पथ स्पष्ट रूप से प्रदान नहीं किया गया है तो यह विधि संग्रह के सभी सदस्यों को वर्तमान पथ में निकालती है।
निकालें ()
यह विधि निर्दिष्ट सदस्य को दिए गए पथ में निकालती है, डिफ़ॉल्ट वर्तमान पथ है।
निम्नलिखित उदाहरण gzip एल्गोरिथम के साथ संपीड़न के लिए एक टार फ़ाइल खोलता है और उसमें एक फ़ाइल जोड़ता है।
>>> fp = tarfile.open("zen.tar.gz","w:gz") >>> fp.add("zen.txt") >>> fp.close()
यह मानते हुए कि 'zen.txt' फ़ाइल वर्तमान कार्यशील निर्देशिका में मौजूद है, इसे 'zen.tar.gz' फ़ाइल में जोड़ा जाएगा।
निम्नलिखित कोड टार आर्काइव से फाइलों को निकालता है और सभी फाइलों को निकालता है (इस मामले में केवल चालू है) और उन्हें वर्तमान फ़ोल्डर में रखता है। परिणाम को सत्यापित करने के लिए, आप वर्तमान फ़ोल्डर में 'zen.txt' को हटा या उसका नाम बदल सकते हैं।
>>> fp = tarfile.open("zen.tar.gz","r:gz") >>> fp.extractall() >>> fp.close()
आप पाएंगे कि 'zen.txt' फ़ाइल वर्तमान निर्देशिका में दिखाई देगी।
वर्तमान निर्देशिका में सभी फाइलों से युक्त एक टार बनाने के लिए, निम्नलिखित कोड का उपयोग करें
import tarfile, glob >>> fp=tarfile.open('file.tar','w') >>> for file in glob.glob('*.*'): fp.add(file) >>> fp.close()
कमांड लाइन इंटरफ़ेस
कमांड लाइन इंटरफेस के माध्यम से टार फाइलों का निर्माण और निष्कर्षण प्राप्त किया जा सकता है। उदाहरण के लिए कमांड विंडो में निष्पादित कमांड का पालन करके 'lines.txt' फ़ाइल को टार फ़ाइल में जोड़ा जाता है
C:\python36 >python -m tarfile -c line.tar lines.txt
निम्नलिखित कमांड लाइन विकल्पों का उपयोग किया जा सकता है।
-l या --list | फ़ाइलों को एक टैरिफ़ाइल में सूचीबद्ध करें। |
-c या --create | स्रोत फ़ाइलों से tarfile बनाएँ। |
-e या --extract | यदि output_dir निर्दिष्ट नहीं है, तो मौजूदा निर्देशिका में tarfile निकालें। |
-t या --test | जांचें कि टारफाइल वैध है या नहीं। |
-v या --verbose | वर्बोज़ आउटपुट। |
निम्नलिखित कमांड लाइन वर्तमान निर्देशिका के तहत newdir फ़ोल्डर में line.tar निकालेगी।
C:\python36>python -m tarfile -e line.tar newdir/
निम्नलिखित कमांड लाइन टार आर्काइव में सभी फाइलों को सूचीबद्ध करेगी।
C:\python36>python -m tarfile -l files.tar
tarfile मॉड्यूल पर इस लेख में परिभाषित वर्गों और कार्यों के बारे में बताया गया है।