تقنية

امتداد المسار في بايثون: هل with_suffix يستبدل tar.gz كاملًا؟

الامتداد gz يتبدل إلى xz وتبقى tar
الاسم داخل المجلد data. [1] [2]

حدد الجزء الأخير. [1] [2]

الخلاصة السريعة

with_suffix يبدل الامتداد الأخير، لا المركب كله. [1] [2]

  • امتداد data/pack.tar.gz هو .gz. [1] [2]
  • مع .xz يصبح المسار data/pack.tar.xz. [1] [2]
  • مع النص الفارغ يصبح data/pack.tar؛ تبقى .tar. [1] [2]
  • يعيد مسارًا جديدًا؛ الأصل لا يتغير. [1] [2]
  • اختبرنا PurePosixPath في 3.12.14؛ العملية نصية، لا تعيد تسمية ملف أو تغير محتواه. [1] [2]

المثال

import pathlib as l
p=l.PurePosixPath(
 'data/pack.tar.gz')
print(p.suffix)
print(p.with_suffix('.xz'))
print(p.with_suffix(''))

[1] [2]

المخرجات: .gz ثم data/pack.tar.xz ثم data/pack.tar. [1] [2]

أي جزء يتغير؟

ينظر الامتداد هنا إلى نهاية الاسم بعد آخر نقطة؛ لذلك يتغير .gz وحده. [1] [2]

إزالة الامتداد الأخير لا تزيل .tar أيضًا. بعد الاستدعاءين يظل p مسار data/pack.tar.gz. [1] [2]

النص الفارغ يزيل gz ويبقى المسار الأصلي
مسار جديد؛ الأصل محفوظ. [1] [2]

حدود المثال

اسم المسار لا يثبت وجود ملف أو نوع ضغطه. لم ننفذ قراءة أو تحويلًا أو إعادة تسمية. [1] [2]

المراجع

  1. Python: pathlib
  2. CPython 3.12.14: pathlib.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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