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

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

مراجعة 16:26، 3 أغسطس 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')]

يعني النمط "**" تحديد المجلد الحالي وجميه المجلدات الفرعية في داخله بشكل عودي (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')]

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

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

>>> 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')]

انظر أيضًا

مصادر