التابع TarFile.extractall()‎‎ في بايثون

من موسوعة حسوب


يستخرج التابع جميع الأعضاء من ملف الأرشيف إلى المجلد الحالي أو المسار المعطى.

البنية العامة

TarFile.extractall(path=".", members=None, *, numeric_owner=False)

المعاملات

‎memebers

معامل اختياري، ويجب أن يكون مجموعة متفرّعة subset من القائمة المعادة من التابع getmembers()‎. يجري تحديد المعلومات الخاصة بالمجلد مثل صاحب المجلد ووقت التعديل والأذونات بعد استخراج جميع الأعضاء من ملف الأرشيف، ويحدث هذا لسببين:

  1. يعاد تعيين قيمة وقت التعديل للمجلد في كل مرة يتم فيها إنشاء ملف جديد فيه.
  2. إن لم تسمح أذونات مجلّد معين بالكتابة فيه، ستفشل عملية استخراج الملفات إلى ذلك المجلد.

numeric_owner

إن أخذ هذا المعامل القيمة True فإن الأعداد uid و gid من ملف tar ستستخدم لتعيين المالك أو المجموعة للملفات المستخرجة. أما إذا أخذ المعامل القيمة False تستخدم القيم المسماة من ملف tar.

تحذير:

لا تستخرج الملفات من ملفات أرشيف غير موثوقة المصدر دون التحري عنها مسبقًا. من المحتمل أن تكون الملفات قد أُنشئت خارج المسار path، كأن يمتلك الأعضاء مسارات ملفات مطلقة تبدأ بالرمز "/" أو "..".

ملاحظات:

  • أضيف المعامل numeric_owner في الإصدار 3.5 من بايثون.
  • أصبح بالإمكان استخدام كائنات شبيهة بالمسارات path-like objects مع المعامل path في الإصدار 3.6 من بايثون.

القيمة المعادة

يعيد التابع القيمة None .

أمثلة

يبين المثال التالي آلية عمل التابع:

>>> import tarfile
>>> tar = tarfile.open('files.tar', 'r')
>>> tar.extractall()

انظر أيضًا

  • التابع TarFile.extract()‎: يستخرج التابع عضوًا من ملف الأرشيف إلى المجلد الحالي مستخدمًا اسمه الكامل.
  • التابع TarFile.extractfile()‎: يستخرج التابع العضو المحدّد في المعاملات من ملف الأرشيف ككائن ملف.

مصادر