استخدام glob والتكرار
اعثر على الملفات باستخدام أنماط glob
استخدام glob والتكرار درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 4 دروس في المجموع.
البحث عن الملفات
تسهّل pathlib عرض محتويات الأدلة والبحث عن الملفات المطابقة لنمط معيّن. والطرق الأساسية هي iterdir وglob وrglob.
إعداد شجرة نموذجية
لاستكشاف هذه الطرق، سننشئ أولًا دليلًا صغيرًا يضم عدة ملفات. ولا يستخدم هذا الإعداد سوى المكتبة القياسية.
from pathlib import Path
root = Path('sample')
root.mkdir(exist_ok=True)
(root / 'a.txt').write_text('1')
(root / 'b.txt').write_text('2')
(root / 'c.log').write_text('3')
print('created files')تعرض iterdir المحتويات
تُنتج iterdir() كل إدخال موجود مباشرةً داخل دليل، بحيث يمثّل كل عنصر كائن Path واحدًا.
from pathlib import Path
root = Path('sample')
for entry in sorted(root.iterdir()):
print(entry.name)استخدام glob مع نمط
تبحث glob() عن الإدخالات المطابقة لنمط على طريقة أنماط الصدفة. وتطابق المحارف البديلة * أي سلسلة من المحارف.
from pathlib import Path
root = Path('sample')
for txt in sorted(root.glob('*.txt')):
print(txt.name)محرف بديل لمحرف واحد
يطابق المحرف البديل ? محرفًا واحدًا بالضبط، ولذلك يكون مفيدًا للأسماء ذات الطول الثابت.
from pathlib import Path
root = Path('sample')
for m in sorted(root.glob('?.txt')):
print(m.name)نطاقات المحارف
تطابق الأقواس المربعة أي محرف واحد من مجموعة أو نطاق، تمامًا كما في مطابقة أنماط الصدفة.
from pathlib import Path
root = Path('sample')
for m in sorted(root.glob('[ab].txt')):
print(m.name)البحث التكراري باستخدام rglob
تبحث rglob() في دليل وفي جميع أدلته الفرعية. وهي مكافئة لـ glob('**/pattern').
from pathlib import Path
root = Path('sample')
(root / 'nested').mkdir(exist_ok=True)
(root / 'nested' / 'deep.txt').write_text('x')
for m in sorted(root.rglob('*.txt')):
print(m)عدّ التطابقات
تكون نتائج glob مكرّرات. غلّفوا أحدها باستخدام list() لعدّ التطابقات أو إعادة استخدامها.
from pathlib import Path
root = Path('sample')
txts = list(root.rglob('*.txt'))
print('found', len(txts), 'text files')التصفية أثناء التكرار
اجمعوا بين مطابقة الأنماط وفحصي is_file أو is_dir لتصفية النتائج بدقة.
from pathlib import Path
root = Path('sample')
files = [p for p in root.iterdir() if p.is_file()]
for f in sorted(files):
print(f.name)معالجة الملفات التي عُثر عليها
بعد الحصول على التطابقات، يمكنكم قراءة كل ملف. سنجمع هنا محتويات كل ملف نصي في الشجرة.
from pathlib import Path
root = Path('sample')
total = 0
for p in root.rglob('*.txt'):
text = p.read_text().strip()
if text.isdigit():
total += int(text)
print('total:', total)فرز نتائج glob
لا يضمن glob ترتيبًا محددًا. غلّفوا النتائج باستخدام sorted() عندما تحتاجون إلى مخرجات حتمية، مثلًا عند إنشاء تقرير.
from pathlib import Path
root = Path('sample')
for p in sorted(root.glob('*'), key=lambda x: x.name):
print(p.name)تحقق سريع
ما الفرق بين glob وrglob؟
مراجعة
تعلّمتم البحث عن الملفات باستخدام أنماط glob.
- تعرض
iterdirالمحتويات المباشرة. - تطابق
globنمطًا (*و?و[...]). - تبحث
rglobبحثًا تكراريًا. - اجمعوا بين مطابقة الأنماط ومرشحات
is_file/is_dirثم اقرأوا التطابقات.
الأسئلة الشائعة
هل درس «استخدام glob والتكرار» مجاني؟
نعم — نص درس «استخدام glob والتكرار» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 4 دروس في المجموع.
ماذا ستتعلم في «استخدام glob والتكرار»؟
اعثر على الملفات باستخدام أنماط glob تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟
لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «استخدام glob والتكرار»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟
نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- كائن Path
- قراءة الملفات وكتابتها
- استخدام glob والتكرار
- معالجة المسارات