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

من موسوعة حسوب
مراجعة 19:24، 14 نوفمبر 2018 بواسطة Mohammed Taher (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:التابع <code>TarFile.extract()‎‎</code> في بايثون}}</noinclude> يستخرج التابع عضوًا من ملف الأرش...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)


يستخرج التابع عضوًا من ملف الأرشيف إلى المجلد الحالي مستخدمًا اسمه الكامل، ويجري استخراج معلومات الملف الخاص به بأكبر دقة ممكنة.

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

TarFile.extract(member, path="", set_attrs=True, *, numeric_owner=False)

المعاملات

‎يمكن للعضو أن يكون اسم ملف filename أو كائن TarInfo، ويمكن تعيين مجلد مختلف باستخدام المعامل path الذي يمكن أن يكون كائنًا شبيهًا بالمسارات path-like object.

set_attrs

إن أخذ المعامل القيمة True فإنّ التابع سيعين معلومات الملف (المالك، وقت التعديل، ووضع الملف)، وإن أخذ المعامل القيمة False فلن يعين التابع تلك المعلومات.

numeric_owner

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

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

يستخرج التابع عضوًا من ملف الأرشيف إلى المجلد الحالي مستخدمًا اسمه الكامل، ويجري استخراج معلومات الملف الخاص به بأكبر دقة ممكنة.

ملاحظة: لا يهتمّ التابع extract()‎ بالكثير من المشاكل التي تحدث أثناء عملية استخراج الملفات؛ لذا ينصح باستخدام التابع extractall()‎ في معظم الحالات.

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

ملاحظات:

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

أمثلة

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

>>> import tarfile
>>> tar = tarfile.open('files.tar')
>>> tar.extract('file2.html')

انظر أيضًا

مصادر

صفحة Read and write tar archive files في توثيق بايثون الرسمي.