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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(قمت بإنشاء الصفحة كبذرة، وهي أول وحدة لي في الموسوعة)
 
سطر 1: سطر 1:
  
= 11.1. pathlib — مسارات نظام الملفات كائنية التوجه =
+
=  pathlib وحدة مسارات نظام الملفات كائنية التوجه =
جديدة في النسخة 3.4
+
= ----أُضيفت هذه الوحدة إلى بايثون في النسخة 3.4 وتقدم هذه الوحدة أصنافًا تمثّل مسارات نظام التشغيل مع دلالات ملائمة لمختلف أنظمة التشغيل.  تنقسم أصناف المسارات إلى نوعين: =
  
الشيفرة المصدرية: Lib/pathlib.py
+
=== صنف المسارات النقية<code>PurePaths</code> ===
----تقدم هذه الوحدة أصنافًا تمثّل مسارات نظام التشغيل مع دلالات ملائمة لمختلف أنظمة التشغيل. تنقسم أصناف المسارات إلى نوعين، الصنف PurePaths الذي يقدم عمليات لحساب المسارات دون أي عمليات إدخال أو إخراج، والصنف ConcretePaths الذي يرث من PurePaths  ولكن مع تقديمها لعمليات الإدخال والإخراج.
 
 
 
إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف Path الذي يتولد (instantiates) من الصنف concrete path بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية.
 
 
 
يمكن للمسارات النقية (Pure Paths) أن تكون مفيدةٌ في بعض الحالات الخاصة، على سبيل المثال:
 
# لمعالجة مسارات نظام ويندوز أثناء العمل على جهاز يعمل بنظام يونكس (والعكس بالعكس)، حيث لا يمكنك إنشاء كائن من الصنف WindowsPath عند العمل على نظام يونكس، ولكن يمكنك إنشاء كائن من الصنف PureWindowsPath.
 
# عليك التأكد بأن الشيفرة البرمجية تعالج المسارات فقط دون الوصول الفعلي إلى نظام التشغيل، ففي هذه الحالة، يمكنك إنشاء كائن من أحد الأصناف النقية، فهي لا تملك عمليات تسمح لها بالوصول إلى نظام التشغيل.
 
{| class="wikitable"
 
|انظر أيضًا
 
 
 
PEP 428: وحدة pathlib -- مسارات نظام الملفات كائنية التوجه
 
 
 
انظر أيضًا
 
 
 
للقيام بمعالجة منخفضة المستوى للمسارات على السلاسل النصية، يمكنك أيضًا استخدام الوحدة os.path
 
|}
 
 
 
== 11.1.1. الاستخدام الأساسي ==
 
استيراد الصنف الأساسي:
 
 
 
>>> from pathlib import Path
 
 
 
تعداد المسارات الفرعية:
 
 
 
>>> p = Path('.')
 
 
 
>>> [x for x in p.iterdir() if x.is_dir()]
 
 
 
[PosixPath('.hg'), PosixPath('docs'), PosixPath('dist'),
 
 
 
PosixPath('__pycache__'), PosixPath('build')]
 
 
 
تعداد ملفات بايثون المصدرية في شجرة المجلدات هذه:
 
 
 
>>>
 
 
 
>>> list(p.glob('**/*.py'))
 
 
 
[PosixPath('test_pathlib.py'), PosixPath('setup.py'),
 
 
 
PosixPath('pathlib.py'), PosixPath('docs/conf.py'),
 
 
 
PosixPath('build/lib/pathlib.py')]
 
 
 
التنقّل ضمن شجرة المجلدات:
 
 
 
>>> p = Path('/etc')
 
 
 
>>> q = p / 'init.d' / 'reboot'
 
 
 
>>> q
 
 
 
PosixPath('/etc/init.d/reboot')
 
 
 
>>> q.resolve()
 
 
 
PosixPath('/etc/rc.d/init.d/halt')
 
 
 
الاستعلام عن خصائص المسار:
 
 
 
>>> q.exists()
 
 
 
True
 
 
 
>>> q.is_dir()
 
 
 
False
 
 
 
فتح ملف:
 
 
 
>>>
 
 
 
>>> with q.open() as f: f.readline()
 
 
 
...
 
 
 
'#!/bin/bash\n'
 
 
 
== 11.1.2.‏ ‎‏PurePaths‏ ==
 
الكائنات المنشأة من الصنف المسارات النقية تقدم عمليات لمعالجة المسارات بحيث لا يتم الوصول الفعلي إلى نظام الملفات. توجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات. 
 
  
 +
= يقدم هذا الصنف عمليات لحساب المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا.  وتوجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات. <syntaxhighlight lang="python3">
 
class pathlib.PurePath(*pathsegments)
 
class pathlib.PurePath(*pathsegments)
 
+
</syntaxhighlight>هو صنف عام يمثل نكهة مسار النظام (حيث يُنشأ كائن من نوع PurePosixPath أو PureWindowsPath عند إنشاء كائن منه)<syntaxhighlight lang="python3">
هو صنف عام يمثل نكهة مسار النظام (حيث يُنشأ كائن من نوع PurePosixPath أو PureWindowsPath عند إنشاء كائن منه)
+
class pathlib.PurePosixPath(*pathsegments)
 
+
</syntaxhighlight><syntaxhighlight lang="python3">
 
class pathlib.PurePosixPath(*pathsegments)
 
class pathlib.PurePosixPath(*pathsegments)
 
+
</syntaxhighlight><syntaxhighlight lang="python3">
هو صنف فرعي من الصنف PurePath، ويمثل مسارات أنظمة الملفات المغايرة لنظام ويندوز
+
class pathlib.PureWindowsPath(*pathsegments)
 
+
</syntaxhighlight> <syntaxhighlight lang="python3">
 
class pathlib.PureWindowsPath(*pathsegments)
 
class pathlib.PureWindowsPath(*pathsegments)
 +
</syntaxhighlight> هو صنف الفرعي من الصنف PurePath، ويمثل مسارات نظام الملفات في ويندوز  =
  
هو صنف الفرعي من الصنف PurePath، ويمثل مسارات نظام الملفات في ويندوز
+
=== صنف المسارات الصلبة<code>ConcretePaths</code> ===
 
 
== 11.1.3. Concrete paths ==
 
المسارات الصلبة هي أصناف فرعية من أصناف المسارات النقية، وهي تقدم إضافة لكل ما سبق طرائق للقيام باستدعاءات من النظام على كائنات المسار، وهناك ثلاث طرق لإنشاء كائن من المسارات الصلبة
 
 
 
Concrete paths are subclasses of the pure path classes. In addition to operations provided by the latter, they also provide methods to do system calls on path objects. There are three ways to instantiate concrete paths:
 
 
 
class pathlib.Path(*pathsegments)
 
 
 
هو صنف فرعي من الصنف PurePath يمثل المسارات الصلبة لنكهات المسارات المختلفة للنظام، وعند إنشاء كائن منه يُنشأ كائن من أحد الصنفين PosixPath  أو WindowsPath.
 
 
 
A subclass of PurePath, this class represents concrete paths of the system’s path flavour (instantiating it creates either a PosixPath or a WindowsPath):
 
 
 
class pathlib.PosixPath(*pathsegments)
 
 
 
هو صنف فرعي من الصنف Path  والصنف PurePosixPath، يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز.
 
 
 
A subclass of Path and PurePosixPath, this class represents concrete non-Windows filesystem paths:
 
 
 
class pathlib.WindowsPath(*pathsegments)
 
 
 
هو صنف فرعي من الصنف Path  والصنف PurePosixPath، يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز.
 
 
 
A subclass of Path and PureWindowsPath, this class represents concrete Windows filesystem paths:
 
 
 
== 11.1.4. تقابل الأدوات المذكورة مع وحدة os ==
 
يبيّن الجدول التالي تقابل عدة توابع من الوحدة os  مع ما يقابلها و يكافئها من الوحدة PurePath و Path.
 
 
 
Below is a table mapping various os functions to their corresponding PurePath/Path equivalent.
 
 
 
ملاحظة:
 
 
 
بالرغم من وجود بعض التقاطع في حالات استخدام التابعين os.path.relpath‎‎()‎ والتابع PurePath.relative_to()‎ إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين.
 
 
 
Note
 
 
 
Although os.path.relpath() and PurePath.relative_to() have some overlapping use-cases, their semantics differ enough to warrant not considering them equivalent.
 
{| class="wikitable"
 
|الوحدة os والوحدة os.path
 
|pathlib
 
|-
 
|os.path.abspath()
 
|Path.resolve()
 
|-
 
|os.getcwd()
 
|Path.cwd()
 
|-
 
|os.path.exists()
 
|Path.exists()
 
|-
 
|os.path.expanduser()
 
|Path.expanduser() و Path.home()
 
|-
 
|os.path.isdir()
 
|Path.is_dir()
 
|-
 
|os.path.isfile()
 
|Path.is_file()
 
|-
 
|os.path.islink()
 
|Path.is_symlink()
 
|-
 
|os.stat()
 
|Path.stat(),Path.owner(), Path.group()
 
|-
 
|os.path.isabs()
 
|PurePath.is_absolute()
 
|-
 
|os.path.join()
 
|PurePath.joinpath()
 
|-
 
|os.path.basename()
 
|PurePath.name
 
|-
 
|os.path.dirname()
 
|PurePath.parent
 
|-
 
|os.path.splitext()
 
|PurePath.suffix
 
|}
 
**
 
  
==== Previous topic ====
+
= يرث هذا الصنف من الصنف <code>PurePaths</code>  ولكن مع تقديمه لعمليات الإدخال والإخراج. =
11. File and Directory Access
 
  
==== Next topic ====
+
=== ملاحظة بخصوص الاستخدام لأول مرة ===
11.2. os.path — Common pathname manipulations
 
  
=== This Page ===
+
= إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف <code>Path</code> الذي يتولد (instantiates) من صنف المسارات الصلبة بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية. {| class="wikitable" |انظر أيضًا  للقيام بمعالجة منخفضة المستوى للمسارات على السلاسل النصية، يمكنك أيضًا استخدام الوحدة os.path |}  =
 +
==11.1.3. Concrete paths==
 +
= المسارات الصلبة هي أصناف فرعية من أصناف المسارات النقية، وهي تقدم إضافة لكل ما سبق طرائق للقيام باستدعاءات من النظام على كائنات المسار، وهناك ثلاث طرق لإنشاء كائن من المسارات الصلبة Concrete paths are subclasses of the pure path classes. In addition to operations provided by the latter, they also provide methods to do system calls on path objects. There are three ways to instantiate concrete paths: class pathlib.Path(*pathsegments) هو صنف فرعي من الصنف PurePath يمثل المسارات الصلبة لنكهات المسارات المختلفة للنظام، وعند إنشاء كائن منه يُنشأ كائن من أحد الصنفين PosixPath  أو WindowsPath. A subclass of PurePath, this class represents concrete paths of the system’s path flavour (instantiating it creates either a PosixPath or a WindowsPath): class pathlib.PosixPath(*pathsegments) هو صنف فرعي من الصنف Path  والصنف PurePosixPath، يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز. A subclass of Path and PurePosixPath, this class represents concrete non-Windows filesystem paths: class pathlib.WindowsPath(*pathsegments) هو صنف فرعي من الصنف Path  والصنف PurePosixPath، يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز. A subclass of Path and PureWindowsPath, this class represents concrete Windows filesystem paths: =
 +
==11.1.4. تقابل الأدوات المذكورة مع وحدة os==
 +
= يبيّن الجدول التالي تقابل عدة توابع من الوحدة os  مع ما يقابلها و يكافئها من الوحدة PurePath و Path. Below is a table mapping various os functions to their corresponding PurePath/Path equivalent. ملاحظة: بالرغم من وجود بعض التقاطع في حالات استخدام التابعين os.path.relpath‎‎()‎ والتابع PurePath.relative_to()‎ إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين. Note Although os.path.relpath() and PurePath.relative_to() have some overlapping use-cases, their semantics differ enough to warrant not considering them equivalent.  {| class="wikitable" |الوحدة os والوحدة os.path |pathlib |- |os.path.abspath() |Path.resolve() |- |os.getcwd() |Path.cwd() |- |os.path.exists() |Path.exists() |- |os.path.expanduser() |Path.expanduser() و Path.home() |- |os.path.isdir() |Path.is_dir() |- |os.path.isfile() |Path.is_file() |- |os.path.islink() |Path.is_symlink() |- |os.stat() |Path.stat(),Path.owner(), Path.group() |- |os.path.isabs() |PurePath.is_absolute() |- |os.path.join() |PurePath.joinpath() |- |os.path.basename() |PurePath.name |- |os.path.dirname() |PurePath.parent |- |os.path.splitext() |PurePath.suffix |}
 +
** =
 +
====Previous topic====
 +
= 11. File and Directory Access =
 +
====Next topic====
 +
= 11.2. os.path — Common pathname manipulations =
 +
===This Page===
 +
=
 
* Report a Bug
 
* Report a Bug
* Show Source
+
* Show Source =
 +
*

مراجعة 09:54، 27 يوليو 2018

 pathlib — وحدة مسارات نظام الملفات كائنية التوجه

----أُضيفت هذه الوحدة إلى بايثون في النسخة 3.4 وتقدم هذه الوحدة أصنافًا تمثّل مسارات نظام التشغيل مع دلالات ملائمة لمختلف أنظمة التشغيل. تنقسم أصناف المسارات إلى نوعين:

صنف المسارات النقيةPurePaths

يقدم هذا الصنف عمليات لحساب المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا. وتوجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات. 
class pathlib.PurePath(*pathsegments)
هو صنف عام يمثل نكهة مسار النظام (حيث يُنشأ كائن من نوع PurePosixPath أو PureWindowsPath عند إنشاء كائن منه)
class pathlib.PurePosixPath(*pathsegments)
class pathlib.PurePosixPath(*pathsegments)
class pathlib.PureWindowsPath(*pathsegments)
class pathlib.PureWindowsPath(*pathsegments)
هو صنف الفرعي من الصنف PurePath، ويمثل مسارات نظام الملفات في ويندوز

صنف المسارات الصلبةConcretePaths

يرث هذا الصنف من الصنف PurePaths  ولكن مع تقديمه لعمليات الإدخال والإخراج.

ملاحظة بخصوص الاستخدام لأول مرة

إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف Path الذي يتولد (instantiates) من صنف المسارات الصلبة بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية. {| class="wikitable" |انظر أيضًا للقيام بمعالجة منخفضة المستوى للمسارات على السلاسل النصية، يمكنك أيضًا استخدام الوحدة os.path |}

11.1.3. Concrete paths

المسارات الصلبة هي أصناف فرعية من أصناف المسارات النقية، وهي تقدم إضافة لكل ما سبق طرائق للقيام باستدعاءات من النظام على كائنات المسار، وهناك ثلاث طرق لإنشاء كائن من المسارات الصلبة Concrete paths are subclasses of the pure path classes. In addition to operations provided by the latter, they also provide methods to do system calls on path objects. There are three ways to instantiate concrete paths: class pathlib.Path(*pathsegments) هو صنف فرعي من الصنف PurePath يمثل المسارات الصلبة لنكهات المسارات المختلفة للنظام، وعند إنشاء كائن منه يُنشأ كائن من أحد الصنفين PosixPath  أو WindowsPath. A subclass of PurePath, this class represents concrete paths of the system’s path flavour (instantiating it creates either a PosixPath or a WindowsPath): class pathlib.PosixPath(*pathsegments) هو صنف فرعي من الصنف Path  والصنف PurePosixPath، يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز. A subclass of Path and PurePosixPath, this class represents concrete non-Windows filesystem paths: class pathlib.WindowsPath(*pathsegments) هو صنف فرعي من الصنف Path  والصنف PurePosixPath، يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز. A subclass of Path and PureWindowsPath, this class represents concrete Windows filesystem paths:

11.1.4. تقابل الأدوات المذكورة مع وحدة os

= يبيّن الجدول التالي تقابل عدة توابع من الوحدة os  مع ما يقابلها و يكافئها من الوحدة PurePath و Path. Below is a table mapping various os functions to their corresponding PurePath/Path equivalent. ملاحظة: بالرغم من وجود بعض التقاطع في حالات استخدام التابعين os.path.relpath‎‎()‎ والتابع PurePath.relative_to()‎ إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين. Note Although os.path.relpath() and PurePath.relative_to() have some overlapping use-cases, their semantics differ enough to warrant not considering them equivalent. {| class="wikitable" |الوحدة os والوحدة os.path |pathlib |- |os.path.abspath() |Path.resolve() |- |os.getcwd() |Path.cwd() |- |os.path.exists() |Path.exists() |- |os.path.expanduser() |Path.expanduser() و Path.home() |- |os.path.isdir() |Path.is_dir() |- |os.path.isfile() |Path.is_file() |- |os.path.islink() |Path.is_symlink() |- |os.stat() |Path.stat(),Path.owner(), Path.group() |- |os.path.isabs() |PurePath.is_absolute() |- |os.path.join() |PurePath.joinpath() |- |os.path.basename() |PurePath.name |- |os.path.dirname() |PurePath.parent |- |os.path.splitext() |PurePath.suffix |}

    • =

Previous topic

11. File and Directory Access

Next topic

11.2. os.path — Common pathname manipulations

This Page

=

  • Report a Bug
  • Show Source =