تقنية

glob.escape في بايثون: كيف تطابق اسمًا بين قوسين؟

نمط عادي يختار x.txt ونمط معدل يختار [x].txt
اسمان في مجلدنا. [1] [2]

نفحص glob.escape باسم مؤلف. [1] [2]

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

استخدم النمط الذي تعيده escape. [1] [2]

  • دونها، يطابق [x].txt الملف x.txt. [1] [2]
  • معها، يطابق ملفنا [x].txt حرفيًا. [1] [2]
  • تعيد نمطًا جديدًا؛ لا تعيد تسمية الملف. [1] [2]
  • نتائج root_dir هنا أسماء نسبية. [1] [2]
  • اختبرنا 3.12.14 على ويندوز دون بحث متداخل. [1] [2]
  • لم نفحص المخفي أو الروابط وبادئات القرص. [1] [2]

المثال

import glob as g
from tempfile import TemporaryDirectory
from pathlib import Path
with TemporaryDirectory() as d:
 for n in ('x.txt','[x].txt'):
  (Path(d)/n).touch()
 s='[x].txt'
 print(g.glob(s,root_dir=d))
 print(g.glob(g.escape(s),
              root_dir=d))

[1] [2]

القائمتان ['x.txt'] ثم ['[x].txt']. [1] [2]

القوس والاسم

القوس يغير معنى النمط. تحول escape الرمز [ إلى [[] في نصنا؛ يبقى اسم الملف الأصلي كما هو. [1] [2]

تغير نص النمط عند تهريب القوس
نمط جديد. [1] [2]

البحث

أعدنا أسماء من المجلد المؤقت. لا نفحص هنا ملفات مخفية أو روابط أو بادئة قرص. [1] [2]

المراجع

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

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