मैं .tgz
फ़ाइलों को निकालने के लिए नीचे दिए गए कोड का उपयोग कर रहा हूं। लॉग फ़ाइलों का प्रकार (.tgz
) कि मुझे निकालने की आवश्यकता है उप-निर्देशिकाएं जिनमें अन्य .tgz
फ़ाइलें और .tar
फ़ाइलें हैं। मैं उनको निकालना चाहता हूं।मैं एक .tgz फ़ाइल निकालना चाहता हूं और किसी भी उपनिर्देशिका को निकालना चाहता हूं जिसमें फ़ाइलें हैं .tgz और .tar
अंत में, मैं सभी .log
फाइलों में कुछ तार और .txt
फ़ाइलें है कि एक .tgz
फ़ाइल में प्रकट हो सकता है के लिए खोज करने के लिए कोशिश कर रहा हूँ।
नीचे वह कोड है जिसका उपयोग मैं .tgz
फ़ाइल निकालने के लिए कर रहा हूं। मैं उप-फ़ाइलों (.tgz
और .tar
) निकालने का तरीका निकालने का प्रयास कर रहा हूं। अब तक, मैं असफल रहा हूं।
import os, sys, tarfile
try:
tar = tarfile.open(sys.argv[1] + '.tgz', 'r:gz')
for item in tar:
tar.extract(item)
print 'Done.'
except:
name = os.path.basename(sys.argv[0])
print name[:name.rfind('.')], '<filename>'
यह एक रिकर्सन के लिए एक महान उपयोग केस प्रतीत होता है। आप फ़ंक्शन में पहला टैरफाइल प्रदान करते हैं और यदि यह किसी अन्य टैर-फ़ाइल से मुकाबला करता है, तो फ़ंक्शन स्वयं को नई टैर फ़ाइल के साथ कॉल करता है। अगर आपको लॉग-फाइल मिलती है, तो आप लॉगफाइल को संभालने वाले दूसरे फ़ंक्शन का आह्वान कर सकते हैं। – Jacob