Python ملف مضغوط مع مثال
Python يسمح لك بإنشاء أرشيفات zip/tar بسرعة.
الأمر التالي سوف يقوم بضغط الدليل بأكمله
shutil.make_archive(output_filename, 'zip', dir_name)
يتيح لك الأمر التالي التحكم في الملفات التي تريد أرشفتها
ZipFile.write(filename)
فيما يلي خطوات إنشاء ملف مضغوط Python
الخطوة 1) لإنشاء ملف أرشيف من Pythonتأكد من صحة بيان الاستيراد الخاص بك وترتيبه. هنا بيان الاستيراد للأرشيف هو from shutil import make_archive
شرح الكود
- استيراد فئة make_archive من وحدة shutil
- استخدم وظيفة التقسيم لتقسيم الدليل واسم الملف من المسار إلى موقع الملف النصي (guru99)
- ثم نقوم باستدعاء الوحدة "shutil.make_archive("guru99 archive, "zip", root_dir)" لإنشاء ملف الأرشيف، والذي سيكون بتنسيق zip
- بعد ذلك نقوم بتمرير الدليل الجذري للأشياء التي نريد ضغطها. لذلك سيتم ضغط كل شيء في الدليل
- عند تشغيل الكود، يمكنك رؤية ملف zip الأرشيفي الذي تم إنشاؤه على الجانب الأيمن من اللوحة.
الخطوة 2) بمجرد إنشاء ملف الأرشيف الخاص بك، يمكنك النقر بزر الماوس الأيمن على الملف وتحديد نظام التشغيل، وسيظهر ملفات الأرشيف الخاصة بك فيه كما هو موضح أدناه
سيظهر الآن ملف archive.zip الخاص بك على نظام التشغيل الخاص بك (Windows إكسبلورر)
الخطوة 3) عندما تنقر نقرًا مزدوجًا فوق الملف، سترى قائمة بجميع الملفات الموجودة هناك.
الخطوة 4) In Python يمكننا التحكم بشكل أكبر في الأرشيف حيث يمكننا تحديد الملف المحدد الذي سيتم تضمينه ضمن الأرشيف. في حالتنا، سنقوم بتضمين ملفين ضمن الأرشيف "guru99.txt" "guru99.txt.bak".
شرح الكود
- استيراد فئة Zipfile من ملف مضغوط Python وحدة. تمنح هذه الوحدة التحكم الكامل في إنشاء ملفات مضغوطة
- نقوم بإنشاء ملف Zip جديد بالاسم ("testguru99.zip, "w")
- يتطلب إنشاء فئة Zipfile جديدة تمرير الإذن لأنه ملف، لذا تحتاج إلى كتابة المعلومات في الملف بتنسيق newzip
- استخدمنا المتغير "newzip" للإشارة إلى الملف المضغوط الذي أنشأناه
- باستخدام دالة الكتابة على المتغير "newzip"، نضيف الملفين "guru99.txt" و"guru99.txt.bak" إلى الأرشيف
عند تنفيذ الكود، يمكنك رؤية الملف تم إنشاؤه على الجانب الأيمن من اللوحة بالاسم "guru99.zip"
ملاحظات: هنا لا نعطي أي أمر "لإغلاق" الملف مثل "newzip. Close" لأننا نستخدم "مع" قفل النطاق، لذلك عندما يقع البرنامج خارج هذا النطاق سيتم تنظيف الملف وإغلاقه تلقائيًا.
الخطوة 5) عند -> انقر بزر الماوس الأيمن على الملف (testguru99.zip) و-> حدد نظام التشغيل الخاص بك (Windows إكسبلورر)سيتم عرض ملفات الأرشيف الموجودة في المجلد كما هو موضح أدناه.
عندما تنقر نقرًا مزدوجًا فوق الملف "testguru99.zip"، فسيتم فتح نافذة أخرى، والتي ستظهر الملفات المضمنة فيها.
ها هو الكود الكامل
Python 2 مثال
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive def main(): # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive", "zip", root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip","w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak") if __name__== "__main__": main()
Python 3 مثال
import os import shutil from zipfile import ZipFile from os import path from shutil import make_archive # Check if file exists if path.exists("guru99.txt"): # get the path to the file in the current directory src = path.realpath("guru99.txt"); # rename the original file os.rename("career.guru99.txt","guru99.txt") # now put things into a ZIP archive root_dir,tail = path.split(src) shutil.make_archive("guru99 archive","zip",root_dir) # more fine-grained control over ZIP files with ZipFile("testguru99.zip", "w") as newzip: newzip.write("guru99.txt") newzip.write("guru99.txt.bak")
الملخص
- لضغط الدليل بأكمله استخدم الأمر "shutil.make_archive("name","zip", root_dir)
- لتحديد الملفات المراد ضغطها، استخدم الأمر "ZipFile.write(filename)"