تقنية

findmatch في بايثون 3.12: هل شغّل الأمر المعاد؟

استبدال اسم الملف
الناتج. [1] [2]

نطبع نتيجة بحث محلي. [1] [2]

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

لا في مثالنا؛ الناتج نص، ولا يوجد حقل test. [1] [2]

  • view يحوي قالب الأمر own-tool %s. [1] [2]
  • filename يستبدل %s بالنص own.txt. [1] [2]
  • الدالة تعيد الأمر والسجل؛ طبعنا الأمر فقط. [1] [2]
  • لم نستخدم getcaps أو نفتح الملف أو نشغّل أداة. [1] [2]
  • وحدة قديمة مهملة؛ الاختبار في 3.12.14. [1] [2]

المثال

import mailcap
caps={'text/plain':[{'view':'own-tool %s'}]}
cmd,entry=mailcap.findmatch(caps,'text/plain',filename='own.txt')
print(cmd)

[1] [2]

ما الذي حدث؟

النص المعاد هو own-tool own.txt، من نوع str. الأسماء مؤلفة؛ لا يثبت الاستبدال وجودها. القراءة أبقت قاموسنا كما هو في الاختبار. [1] [2]

نص الأمر المعاد
طبعنا النص فقط. [1] [2]

شرط مهم

لا نعمم غياب التنفيذ: إذا احتوى سجل على test، قد تنفذ الدالة اختبارًا عبر os.system. لا يتضمن سجلنا هذا الحقل، ولا ننفذ النص المعاد. [1] [2]

عند غياب التطابق

أعاد البحث عن image/png في قاموسنا (None, None)؛ ليس ذلك رمز خروج برنامج. لا نفحص إعدادات النظام أو سلامة مدخلات عامة. [1] [2]

المراجع

  1. Python3.12: mailcap
  2. CPython3.12.14: mailcap.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

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