الفرق بين المراجعتين لصفحة: «Python/pathlib/Path/glob»
طلا ملخص تعديل |
طلا ملخص تعديل |
||
سطر 7: | سطر 7: | ||
[PosixPath('docs/conf.py')] | [PosixPath('docs/conf.py')] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==البنية العامة== | ==البنية العامة== | ||
<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')]
ملاحظة: احذر من استخدام النمط "**"
في أشجار المجلدات الكبيرة، فإن ذلك قد يستهلك الكثير من الوقت.