Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन का उपयोग करके टार आर्काइव फ़ाइलें पढ़ना और लिखना (tarfile मॉड्यूल)

'tar' यूटिलिटी मूल रूप से UNIX ऑपरेटिंग सिस्टम के लिए पेश की गई थी। इसका उद्देश्य कई फ़ाइलों को एक सिंगल आर्काइव फ़ाइल में एकत्र करना है जिसे अक्सर टारबॉल कहा जाता है जो फ़ाइलों को वितरित करना आसान बनाता है। पायथन की स्टैंडर्ड लाइब्रेरी के tarfile मॉड्यूल में फ़ंक्शन्स टार आर्काइव बनाने और आवश्यकतानुसार टारबॉल से निकालने में मदद करते हैं। आर्काइव को gzip, bz2 और lzma कम्प्रेशन के साथ या बिना किसी कम्प्रेशन के बनाया जा सकता है।

इस मॉड्यूल में परिभाषित मुख्य फ़ंक्शन main() है जिसका उपयोग करके टार फ़ाइल में लिखना या उससे पढ़ना पूरा किया जाता है।

open()

यह फ़ंक्शन पैरामीटर के रूप में प्रदान किए गए फ़ाइल नाम से संबंधित TarFile ऑब्जेक्ट लौटाता है। फ़ंक्शन को mode नामक एक अन्य पैरामीटर की आवश्यकता होती है, जो डिफ़ॉल्ट रूप से 'r' है जो बिना कम्प्रेशन को इंगित करता है। अन्य मोड्स नीचे सूचीबद्ध हैं:

क्र.सं. मोड और कार्य
1 'r' या 'r:*'
पारदर्शी कम्प्रेशन के साथ पढ़ने के लिए खोलें।
2 'r:'
बिना कम्प्रेशन के पढ़ने के लिए खोलें।
3 'r:gz'
gzip कम्प्रेशन के साथ पढ़ने के लिए खोलें।
4 'r:bz2'
bzip2 कम्प्रेशन के साथ पढ़ने के लिए खोलें।
5 'r:xz'
lzma कम्प्रेशन के साथ पढ़ने के लिए खोलें।
6 'x' या 'x:'
बिना कम्प्रेशन के विशेष रूप से टारफ़ाइल बनाएं।
7 'x:gz'
gzip कम्प्रेशन के साथ टारफ़ाइल बनाएं।
8 'x:bz2'
bzip2 कम्प्रेशन के साथ टारफ़ाइल बनाएं।
9 'x:xz'
lzma कम्प्रेशन के साथ टारफ़ाइल बनाएं।
10 'a' या 'a:'
बिना कम्प्रेशन के अपेंडिंग के लिए खोलें।
11 'w' या 'w:'
अनकंप्रेस्ड लिखने के लिए खोलें।
12 'w:gz'
gzip कम्प्रेस्ड लिखने के लिए खोलें।
13 'w:bz2'
bzip2 कम्प्रेस्ड लिखने के लिए खोलें।
14 'w:xz'
lzma कम्प्रेस्ड लिखने के लिए खोलें।

मॉड्यूल TarFile क्लास को परिभाषित करता है। open() फ़ंक्शन के बजाय, TarFile ऑब्जेक्ट को कंस्ट्रक्टर कॉल करके इंस्टेंटिएट किया जा सकता है।

TarFile()

इस कंस्ट्रक्टर को भी फ़ाइल नाम और मोड पैरामीटर की आवश्यकता होती है। मोड पैरामीटर के संभावित मान उपरोक्त अनुसार हैं।

इस क्लास में अन्य मेथड्स निम्न हैं:

add()

यह मेथड आर्काइव में फ़ाइल जोड़ता है। मेथड को एक नाम की आवश्यकता होती है जो फ़ाइल, डायरेक्टरी, सिम्बोलिक लिंक, शॉर्टकट आदि का नाम हो सकता है। डायरेक्ट्रीज़ डिफ़ॉल्ट रूप से रिकर्सिवली जोड़ी जाती हैं। रिकर्सिव जोड़ को रोकने के लिए recursive पैरामीटर को False पर सेट करें।

addfile()

यह मेथड आर्काइव में TarInfo ऑब्जेक्ट जोड़ता है।

extractall()

यह मेथड आर्काइव के सभी मेंबर्स को करंट पथ में निकालता है यदि कोई अन्य पथ स्पष्ट रूप से प्रदान नहीं किया गया है।

extract()

यह मेथड निर्दिष्ट मेंबर को दिए गए पथ में निकालता है, डिफ़ॉल्ट करंट पथ है।

निम्न उदाहरण 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 सोर्स फ़ाइलों से टारफ़ाइल बनाएं।
-e या --extract टारफ़ाइल को करंट डायरेक्टरी में निकालें यदि output_dir निर्दिष्ट नहीं है।
-t या --test जांचें कि टारफ़ाइल वैध है या नहीं।
-v या --verbose वर्बोज़ आउटपुट।

निम्न कमांड लाइन line.tar को करंट डायरेक्टरी के अंतर्गत newdir फ़ोल्डर में निकालेगी।

C:\python36>python -m tarfile -e line.tar newdir/

निम्न कमांड लाइन टार आर्काइव में सभी फ़ाइलों को सूचीबद्ध करेगी।

C:\python36>python -m tarfile -l files.tar

tarfile मॉड्यूल पर यह लेख इसमें परिभाषित क्लासेस और फ़ंक्शन्स की व्याख्या करता है।

  1. Python में xlsxwriter मॉड्यूल का उपयोग करके एक्सेल फ़ाइल बनाना और लिखना Python में xlsxwriter मॉड्यूल का उपयोग करके एक्सेल फ़ाइल बनाना और लिखना

    Python की लाइब्रेरी की व्यापक उपलब्धता इसे Microsoft Excel के साथ इंटरैक्ट करने में सक्षम बनाती है, जो एक बहुत व्यापक रूप से उपयोग किया जाने वाला डेटा प्रोसेसिंग टूल है। इस लेख में हम देखेंगे कि हम xlsxwriter नामक मॉड्यूल का उपयोग करके एक्सेल फ़ाइल कैसे बना सकते हैं और उसमें लिख सकते हैं। यह मौजूदा

  1. पायथन openpyxl मॉड्यूल का उपयोग करके एक्सेल फ़ाइल पढ़ना और लिखना पायथन openpyxl मॉड्यूल का उपयोग करके एक्सेल फ़ाइल पढ़ना और लिखना

    पायथन एक्सेल फ़ाइलों के संचालन के लिए openpyxl मॉड्यूल प्रदान करता है। एक्सेल फ़ाइलें कैसे बनाएं, कैसे लिखें, पढ़ें आदि को इस मॉड्यूल द्वारा लागू किया जा सकता है। openpyxl मॉड्यूल स्थापित करने के लिए, हम कमांड प्रॉम्प्ट में यह कमांड लिख सकते हैं pip install openpyxl यदि हम शीट शीर्षक नाम देना चाहते

  1. लिनक्स पर TAR का उपयोग करके फाइलों को आर्काइव कैसे करें लिनक्स पर TAR का उपयोग करके फाइलों को आर्काइव कैसे करें

    एक आर्काइव एक विशेष प्रकार की फाइल होती है जो उसके भीतर अनेक फोल्डर्स और फाइलों को स्टोर कर सकती है। आर्काइव को इतना प्रभावी बनाने वाली बात यह है कि जिन फाइलों और फोल्डर्स को वे समाहित करते हैं, वे आर्काइव के बाहर की अपनी फाइल-स्ट्रक्चर को बनाए रखते हैं, और यह स्ट्रक्चर तब भी बरकरार रहती है जब आर्का