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

من موسوعة حسوب
< Python‏ | pathlib‏ | Path
طلا ملخص تعديل
طلا ملخص تعديل
سطر 7: سطر 7:
[PosixPath('docs/conf.py')]
[PosixPath('docs/conf.py')]


</syntaxhighlight>يعني النمط <code>"**"</code> تحديد المجلد الحالي وجميه المجلدات الفرعية في داخله بشكل عودي (recursively)، وهو ما يسمّى recursive globbing<syntaxhighlight lang="python3">
</syntaxhighlight>
>>> 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> في أشجار المجلدات الكبيرة، فإن ذلك قد يستهلك كمية هائلة من الوقت.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="python3">
<syntaxhighlight lang="python3">
سطر 42: سطر 33:


</syntaxhighlight>
</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> في أشجار المجلدات الكبيرة، فإن ذلك قد يستهلك الكثير من الوقت.
==انظر أيضًا==
==انظر أيضًا==
<span> </span>
<span> [https://stackoverflow.com/questions/2186525/use-a-glob-to-find-files-recursively-in-python طرق أخرى لمطابقة أنماط glob]</span>
==مصادر==
==مصادر==

مراجعة 06:58، 12 أغسطس 2018

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

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

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

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

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

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

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

المعاملات

الوسيط 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')]

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

انظر أيضًا

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

مصادر