الفرق بين المراجعتين لصفحة: «Python/pathlib/Path/glob»

من موسوعة حسوب
< Python‏ | pathlib‏ | Path
أنشأ الصفحة ب'== التابع Path.cwd == يعيد كائن مسار جديدًا يمثّل المسار الحالي (بشكل مشابه للتابع os.getcwd)<syntaxhighlight lan...'
 
طلا ملخص تعديل
 
(2 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
== التابع Path.cwd ==
==التابع <code>Path.glob</code> في بايثون==
يعيد كائن مسار جديدًا يمثّل المسار الحالي (بشكل مشابه للتابع os.getcwd)<syntaxhighlight lang="python3">
تعيد جميع الملفات التي تحقق نمط [[wikipedia:Glob_(programming)|glob]] المعطى، مهما كان نوع الملف
>>> Path.cwd()
==البنية العامة==
<syntaxhighlight lang="python3">
glob(pattern)
</syntaxhighlight>
==المعاملات==


PosixPath('/home/antoine/pathlib')
=== الوسيط <code>pattern</code> ===
نمط <code>glob</code> المُراد مُطابقته.


==القيمة المعادة==
يُعيد قائمة عناصرها كائنات مسار، تُمثّل جميع الملفات التي تحقق نمط [[wikipedia:Glob_(programming)|glob]] المعطى.
==أمثلة==
يبين المثال التالي طريقة استخدام التابع:<syntaxhighlight lang="python3">
>>> sorted(Path('.').glob('*.py'))
[PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')]


</syntaxhighlight><span> </span>
>>> sorted(Path('.').glob('*/*.py'))
[PosixPath('docs/conf.py')]
 
</syntaxhighlight>
 
=== استخدام النمط <code>"**"</code> ===
يعني النمط <code>"**"</code> تحديد المجلد الحالي وجميه المجلدات الفرعية في داخله بشكل عودي (recursively)، وهو ما يسمّى recursive globbing<syntaxhighlight lang="python3">
>>> sorted(Path('.').glob('**/*.py'))
[PosixPath('build/lib/pathlib.py'),
PosixPath('docs/conf.py'),
PosixPath('pathlib.py'),
PosixPath('setup.py'),
PosixPath('test_pathlib.py')]
</syntaxhighlight><span> </span>ملاحظة: احذر من استخدام النمط <code>"**"</code> في أشجار المجلدات الكبيرة، فإن ذلك قد يستهلك الكثير من الوقت.
 
==انظر أيضًا==
التابع [[Python/pathlib/Path/rglob|rglob]] المشابه لعمل التابع glob في حالة التكرار العودي على المجلدات باستخدام النمط <code>'**'</code>.
 
<span> [https://stackoverflow.com/questions/2186525/use-a-glob-to-find-files-recursively-in-python طرق أخرى لمطابقة أنماط glob]</span>
==مصادر==
[https://docs.python.org/3/library/pathlib.html قسم الوحدة pathlib في توثيق بايثون الرسمي.]

المراجعة الحالية بتاريخ 23:03، 26 أغسطس 2018

التابع Path.glob في بايثون

تعيد جميع الملفات التي تحقق نمط glob المعطى، مهما كان نوع الملف

البنية العامة

glob(pattern)

المعاملات

الوسيط pattern

نمط glob المُراد مُطابقته.

القيمة المعادة

يُعيد قائمة عناصرها كائنات مسار، تُمثّل جميع الملفات التي تحقق نمط glob المعطى.

أمثلة

يبين المثال التالي طريقة استخدام التابع:

>>> sorted(Path('.').glob('*.py'))
[PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')]

>>> sorted(Path('.').glob('*/*.py'))
[PosixPath('docs/conf.py')]

استخدام النمط "**"

يعني النمط "**" تحديد المجلد الحالي وجميه المجلدات الفرعية في داخله بشكل عودي (recursively)، وهو ما يسمّى recursive globbing

>>> sorted(Path('.').glob('**/*.py'))
[PosixPath('build/lib/pathlib.py'),
PosixPath('docs/conf.py'),
PosixPath('pathlib.py'),
PosixPath('setup.py'),
PosixPath('test_pathlib.py')]

ملاحظة: احذر من استخدام النمط "**" في أشجار المجلدات الكبيرة، فإن ذلك قد يستهلك الكثير من الوقت.

انظر أيضًا

التابع rglob المشابه لعمل التابع glob في حالة التكرار العودي على المجلدات باستخدام النمط '**'.

طرق أخرى لمطابقة أنماط glob

مصادر

قسم الوحدة pathlib في توثيق بايثون الرسمي.