के माध्यम से एक स्क्रिप्ट बनाना चाहता हूं, मैं एक निर्देशिका में फ़ोल्डर्स से सभी .tar.gz फ़ाइलों को अनजिप करने के लिए एक स्क्रिप्ट बनाने की कोशिश कर रहा हूं। उदाहरण के लिए, मेरे पास एक फ़ाइल होगी जो इसे कॉल करे (test.tar.gz)। फिर यदि मैं मैन्युअल रूप से करता हूं, तो मैं "यहां निकालने" के लिए दबा सकता हूं, तो .tar.gz फ़ाइल एक नई फ़ाइल तैयार करेगी, और यह test.tar को कॉल करेगी। अंत में, अगर मैं "यहां निकालें" दबाए जाने की प्रक्रिया को दोहराता हूं, तो .tar फ़ाइल मुझे सभी .pdf फ़ाइलों को प्रोडक्ट करता है।मैं unzip (.tar.gz) फ़ाइल (पायथन)
मुझे आश्चर्य है कि मैं यह कैसे कर सकता हूं, और मेरे पास मेरा कोड है और ऐसा लगता है कि यह वास्तविक काम नहीं करता है।
import os
import tarfile
import zipfile
def extract_file(path, to_directory='.'):
if path.endswith('.zip'):
opener, mode = zipfile.ZipFile, 'r'
elif path.endswith('.tar.gz') or path.endswith('.tgz'):
opener, mode = tarfile.open, 'r:gz'
elif path.endswith('.tar.bz2') or path.endswith('.tbz'):
opener, mode = tarfile.open, 'r:bz2'
else:
raise ValueError, "Could not extract `%s` as no appropriate extractor is found" % path
cwd = os.getcwd()
os.chdir(to_directory)
try:
file = opener(path, mode)
try: file.extractall()
finally: file.close()
finally:
os.chdir(cwd)
जब तक अजगर का उपयोग करने में एक बिंदु है, यह एक नौकरी एक खोल स्क्रिप्ट के लिए सबसे उपयुक्त तरह लगता है। – mfaerevaag
extractall लक्ष्य निर्देशिका को पैरामीटर के रूप में लेता है, पीछे और आगे –