التابع TarFile.extract()
في بايثون
يستخرج التابع عضوًا من ملف الأرشيف إلى المجلد الحالي مستخدمًا اسمه الكامل، ويجري استخراج معلومات الملف الخاص به بأكبر دقة ممكنة.
البنية العامة
TarFile.extract(member, path="", set_attrs=True, *, numeric_owner=False)
المعاملات
member
يمكن للعضو المراد استخراجه من الأرشيف أن يكون اسم ملف filename
أو كائن TarInfo
.
path
يمكن تعيين مجلد مختلف باستخدام المعامل path
الذي يمكن أن يكون كائنًا شبيهًا بالمسارات path-like object.
ملاحظة: أصبح بالإمكان استخدام كائنات شبيهة بالمسارات path-like objects مع المعامل path
في الإصدار 3.6 من بايثون.
set_attrs
إن أخذ المعامل القيمة True
فإنّ التابع سيعين معلومات الملف (المالك، وقت التعديل، ووضع الملف)، وإن أخذ المعامل القيمة False
فلن يعين التابع تلك المعلومات.
ملاحظة: أضيف المعامل set_attrs
في الإصدار 3.2 من بايثون.
numeric_owner
إن أخذ هذا المعامل القيمة True
فإن الأعداد uid
و gid
من ملف tar ستستخدم لتعيين المالك أو المجموعة للملفات المستخرجة. أما إذا أخذ المعامل القيمة False
تستخدم القيم المسماة من ملف tar.
ملاحظة: أضيف المعامل numeric_owner
في الإصدار 3.5 من بايثون.
القيمة المعادة
يعيد التابع القيمة None
.
ملاحظة:
لا يهتمّ التابع extract()
بالكثير من المشاكل التي تحدث أثناء عملية استخراج الملفات؛ لذا ينصح باستخدام التابع extractall()
في معظم الحالات.
تحذير:
لا تستخرج الملفات من ملفات أرشيف غير موثوقة المصدر دون التحري عنها مسبقًا. من المحتمل أن تكون الملفات قد أُنشئت خارج المسار path
، كأن يمتلك الأعضاء مسارات ملفات مطلقة تبدأ بالرمز "/"
أو ".."
.
أمثلة
يبين المثال التالي آلية عمل التابع:
>>> import tarfile
>>> tar = tarfile.open('files.tar')
>>> tar.extract('file2.html')
انظر أيضًا
- التابع
TarFile.extractall()
: يستخرج التابع جميع الأعضاء من ملف الأرشيف إلى المجلد الحالي أو المسار المعطى.
- التابع
TarFile.extractfile()
: يستخرج التابع العضو المحدّد في المعاملات من ملف الأرشيف ككائن ملف.
مصادر
صفحة Read and write tar archive files في توثيق بايثون الرسمي.