كيفية استخدام وحدة glob في Python للبحث عن الملفات حسب النمط

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

مقدمة إلى وحدة glob

توفر وحدة glob طريقة لإدراج الملفات والدلائل باستخدام أحرف البدل على غرار شل يونكس. وهذا مفيد لمهام مثل البحث عن الملفات والمعالجة الدفعية والمزيد. تتضمن الوحدة وظائف تسمح لك بمطابقة أسماء الملفات مع الأنماط، مما يجعل إدارة الملفات أسهل.

الاستخدام الأساسي لـ glob

لاستخدام وحدة glob، ستحتاج إلى استيرادها ثم استخدام الدالة glob.glob() للعثور على الملفات التي تطابق نمطًا. يمكن أن تتضمن الأنماط التي تستخدمها أحرفًا بديلة مثل * (تطابق أي عدد من الأحرف) و? (تطابق حرفًا واحدًا).

أمثلة

البحث عن الملفات ذات الامتداد المحدد

على سبيل المثال، للعثور على جميع الملفات ذات الامتداد .txt في دليل ما، يمكنك استخدام:

import glob

# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)

البحث عن الملفات في دليل فرعي

للعثور على جميع الملفات ذات الامتداد المحدد في دليل فرعي، حدد الدليل الفرعي في النمط:

import glob

# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)

استخدام الأحرف البدل

يمكن أن تساعدك الأحرف البدل في مطابقة نطاق أوسع من الملفات. على سبيل المثال، للعثور على جميع ملفات النصوص التي تبدأ بـ "report":

import glob

# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)

البحث عن الملفات ذات الامتدادات المتعددة

يمكنك أيضًا استخدام glob للعثور على ملفات ذات امتدادات متعددة باستخدام نمط يتضمن تطابقات متعددة للأحرف البدل:

import glob

# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)

الاستخدام المتقدم

بالإضافة إلى الأنماط البسيطة، تدعم وحدة glob أنماطًا أكثر تعقيدًا. على سبيل المثال، يمكنك استخدام أنماط مثل ** للبحث بشكل متكرر في الدلائل.

البحث المتكرر

للبحث عن الملفات بشكل متكرر في جميع الدلائل الفرعية، استخدم النمط ** مع الوسيطة recursive=True:

import glob

# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)

خاتمة

وحدة glob هي أداة أساسية لإدارة الملفات في Python، مما يسمح لك بالبحث عن الملفات باستخدام الأنماط بسهولة. سواء كنت تعمل مع أنواع ملفات معينة، أو تبحث عبر الدلائل، أو تقوم بعمليات بحث معقدة، توفر glob حلاً بسيطًا وفعالًا.