الفرق بين المراجعتين ل"Python/pathlib/Path/glob"

من موسوعة حسوب
< Python‏ | pathlib‏ | Path
اذهب إلى التنقل اذهب إلى البحث
ط
ط
 
سطر 1: سطر 1:
==التابع <code>PurePath.glob</code>في بايثون==
+
==التابع <code>Path.glob</code> في بايثون==
تعيد جميع الملفات التي تحقق نمط [[wikipedia:Glob_(programming)|glob]] المعطى، مهما كان نوع الملف<syntaxhighlight lang="python3">
+
تعيد جميع الملفات التي تحقق نمط [[wikipedia:Glob_(programming)|glob]] المعطى، مهما كان نوع الملف
>>> sorted(Path('.').glob('*.py'))
 
[PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')]
 
 
 
>>> sorted(Path('.').glob('*/*.py'))
 
[PosixPath('docs/conf.py')]
 
 
 
</syntaxhighlight>
 
 
==البنية العامة==
 
==البنية العامة==
 
<syntaxhighlight lang="python3">
 
<syntaxhighlight lang="python3">
>>> sorted(Path('.').glob('*.py'))
+
glob(pattern)
[PosixPath('pathlib.py'), PosixPath('setup.py'), PosixPath('test_pathlib.py')]
 
 
 
>>> sorted(Path('.').glob('*/*.py'))
 
[PosixPath('docs/conf.py')]
 
 
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 
==المعاملات==
 
==المعاملات==
سطر 45: سطر 33:
  
 
==انظر أيضًا==
 
==انظر أيضًا==
 +
التابع [[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>
 
<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 في توثيق بايثون الرسمي.