ملف Python ZIP مع مثال

ملف Python ZIP مع مثال

تسمح لك Python بإنشاء أرشيفات مضغوطة/قطران بسرعة.

فولوwing سيقوم الأمر بضغط الدليل بأكمله

shutil.make_archive(output_filename, 'zip', dir_name)

فولوwing يمنحك الأمر التحكم في الملفات التي تريد أرشفتها

ZipFile.write(filename)

فيما يلي خطوات إنشاء ملف مضغوط في بايثون

الخطوة 1) لإنشاء ملف أرشيف من Python، تأكد من أن بيان الاستيراد الخاص بك صحيح ومرتب. هنا بيان الاستيراد للأرشيف from shutil import make_archive

بايثون ملف مضغوط

شرح الكود

  • استيراد فئة make_archive من الوحدة النمطية Shutil
  • استخدم وظيفة التقسيم لتقسيم الدليل واسم الملف من المسار إلى موقع الملف النصي (guru99)
  • ثم نطلق على الوحدة اسم "shutil.make_archive("guru99 archive, "zip, root_dir)" لإنشاء ملف أرشيف، والذي سيكون بتنسيق zip
  • بعد ذلك نقوم بتمرير الدليل الجذري للأشياء التي نريد ضغطها. لذلك سيتم ضغط كل شيء في الدليل
  • عند تشغيل الكود، يمكنك رؤية ملف الأرشيف المضغوط الذي تم إنشاؤه على الجانب الأيمن من اللوحة.

الخطوة 2) بمجرد إنشاء ملف الأرشيف الخاص بك، يمكنك النقر بزر الماوس الأيمن على الملف واختيار نظام التشغيل، وسوف تظهر ملفات الأرشيف الخاصة بك فيه كما هو موضح أدناه

بايثون ملف مضغوط

الآن سيظهر ملف archive.zip الخاص بك على نظام التشغيل لديك (مستكشف Windows)

بايثون ملف مضغوط

الخطوة 3) عند النقر المزدوج على الملف، سترى قائمة بجميع الملفات الموجودة هناك.

بايثون ملف مضغوط

الخطوة 4) في 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"، سيتم فتح نافذة أخرى، وسوف تظهر هذه الملفات المضمنة فيه.

بايثون ملف مضغوط

ها هو الكود الكامل

مثال بايثون 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()

مثال بايثون 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)"