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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(التعديل قبل الأخير)
سطر 1: سطر 1:
 +
=  pathlib — وحدة مسارات نظام الملفات كائنية التوجه=
 +
أُضيفت هذه الوحدة إلى بايثون في النسخة 3.4 وتقدم هذه الوحدة أصنافًا تمثّل مسارات نظام التشغيل مع دلالات ملائمة لمختلف أنظمة التشغيل.  تنقسم أصناف المسارات إلى نوعين:
 +
===صنف المسارات النقية <code>PurePath</code>===
 +
يقدم هذا الصنف عمليات لحساب المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا.  وتوجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات، ونوجزها فيما يلي:
 +
 +
1- <code>PurePath</code> هو صنف عام يمثل نكهة مسار النظام (حيث يُنشأ كائن من نوع <code>PurePosixPath</code> أو <code>PureWindowsPath</code> عند إنشاء كائن منه)
 +
 +
2- <code>PurePosixPath</code>هو الصنف الفرعي من الصنف <code>PurePath</code> الذي يمثل مسارات نظام الملفات في الأنظمة المغايرة لويندوز
  
=  pathlib — وحدة مسارات نظام الملفات كائنية التوجه =
+
3- <code>PureWindowsPath</code> هو الصنف الفرعي من الصنف <code>PurePath</code> الذي يمثل مسارات نظام الملفات في ويندوز
أُضيفت هذه الوحدة إلى بايثون في النسخة 3.4 وتقدم هذه الوحدة أصنافًا تمثّل مسارات نظام التشغيل مع دلالات ملائمة لمختلف أنظمة التشغيل.  تنقسم أصناف المسارات إلى نوعين:
 
  
=== صنف المسارات النقية<code>PurePaths</code> ===
+
=== صنف المسارات الصلبة <code>Path</code> ===
يقدم هذا الصنف عمليات لحساب المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا.  وتوجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات. 
+
يرث هذا الصنف من الصنف <code>PurePaths</code>  ولكن مع تقديمه لعمليات الإدخال والإخراج، أي أن الكائنات المنشأة منه قادرة على الوصول الفعلي لملفات النظام والتعديل عليها، ويمكن إنشاء كائنات من هذا الصنف بثلاث طرق (نكهات مختلفة)، نوجزها فيما يلي:
  
هو صنف عام يمثل نكهة مسار النظام (حيث يُنشأ كائن من نوع <code>PurePosixPath</code> أو <code>PureWindowsPath</code> عند إنشاء كائن منه)<syntaxhighlight lang="python3">
+
1- <code>Path</code> هو الصنف العام، يُنشأ كائن من أحد الصنفين <code>PosixPath</code>  أو <code>WindowsPath</code> عند إنشاء كائن منه.
class pathlib.PurePosixPath(*pathsegments)
 
</syntaxhighlight>هو الصنف الفرعي من الصنف <code>PurePath</code> الذي يمثل مسارات نظام الملفات في الأنظمة المغايرة لويندوز<syntaxhighlight lang="python3">
 
class pathlib.PureWindowsPath(*pathsegments)
 
</syntaxhighlight> هو الصنف الفرعي من الصنف <code>PurePath</code> الذي يمثل مسارات نظام الملفات في ويندوز
 
  
صنف المسارات الصلبة<code>ConcretePaths</code>
+
2-<code>PosixPath</code> هو الصنف فرعي الذي يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز.
  
يرث هذا الصنف من الصنف <code>PurePaths</code>  ولكن مع تقديمه لعمليات الإدخال والإخراج، أي أن الكائنات المنشأة منه قادرة على الوصول الفعلي لملفات النظام والتعديل عليها، ويمكن إنشاء كائنات من هذا الصنف بثلاث طرق (نكهات مختلفة)<syntaxhighlight lang="python3">
+
3-<code>WindowsPath</code> هو الصنف الفرعي الذي يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز.
class pathlib.Path(*pathsegments)
 
</syntaxhighlight>هو الصنف حيث يُنشأ كائن من أحد الصنفين <code>PosixPath</code>  أو <code>WindowsPath</code>. عند إنشاء كائن منه.<syntaxhighlight lang="python3">
 
class pathlib.PosixPath(*pathsegments)
 
</syntaxhighlight>هو الصنف فرعي الذي يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز.<syntaxhighlight lang="python3">
 
class pathlib.WindowsPath(*pathsegments)
 
</syntaxhighlight>هو الصنف الفرعي الذي يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز.
 
  
 
=== ملاحظة بخصوص الاستخدام لأول مرة ===
 
=== ملاحظة بخصوص الاستخدام لأول مرة ===
 
إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف <code>Path</code> الذي يتولد (instantiates) من صنف المسارات الصلبة بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية.
 
إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف <code>Path</code> الذي يتولد (instantiates) من صنف المسارات الصلبة بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية.
 
 
{| class="wikitable"
 
{| class="wikitable"
|'''انظر أيضًا'''  
+
|'''انظر أيضًا'''
 
للقيام بمعالجة منخفضة المستوى للمسارات على السلاسل النصية، يمكنك أيضًا استخدام الوحدة os.path
 
للقيام بمعالجة منخفضة المستوى للمسارات على السلاسل النصية، يمكنك أيضًا استخدام الوحدة os.path
 
|}
 
|}
 
+
===التقابل مع الوحدة os===
=== التقابل مع الوحدة os ===
 
 
يبيّن الجدول التالي تقابل عدة توابع من الوحدة os  مع ما يقابلها و يكافئها من الوحدة PurePath و Path.
 
يبيّن الجدول التالي تقابل عدة توابع من الوحدة os  مع ما يقابلها و يكافئها من الوحدة PurePath و Path.
 
ملاحظة:
 
 
بالرغم من وجود بعض التقاطع في حالات استخدام التابعين os.path.relpath‎‎()‎ والتابع PurePath.relative_to()‎ إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين.
 
 
 
{| class="wikitable"
 
{| class="wikitable"
|الوحدة os والوحدة os.path
+
!الوحدة os والوحدة os.path
|pathlib
+
!الوحدة pathlib
 
|-
 
|-
 
|os.path.abspath()
 
|os.path.abspath()
سطر 80: سطر 70:
 
|PurePath.suffix
 
|PurePath.suffix
 
|}
 
|}
*  
+
ملاحظة:
 +
 
 +
بالرغم من وجود بعض التقاطع في حالات استخدام التابعين os.path.relpath‎‎()‎ والتابع PurePath.relative_to()‎ إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين.
 +
*
 +
*
 +
 
 
*
 
*

مراجعة 19:33، 27 يوليو 2018

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

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

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

يقدم هذا الصنف عمليات لحساب المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا. وتوجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات، ونوجزها فيما يلي:

1- PurePath هو صنف عام يمثل نكهة مسار النظام (حيث يُنشأ كائن من نوع PurePosixPath أو PureWindowsPath عند إنشاء كائن منه)

2- PurePosixPathهو الصنف الفرعي من الصنف PurePath الذي يمثل مسارات نظام الملفات في الأنظمة المغايرة لويندوز

3- PureWindowsPath هو الصنف الفرعي من الصنف PurePath الذي يمثل مسارات نظام الملفات في ويندوز

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

يرث هذا الصنف من الصنف PurePaths  ولكن مع تقديمه لعمليات الإدخال والإخراج، أي أن الكائنات المنشأة منه قادرة على الوصول الفعلي لملفات النظام والتعديل عليها، ويمكن إنشاء كائنات من هذا الصنف بثلاث طرق (نكهات مختلفة)، نوجزها فيما يلي:

1- Path هو الصنف العام، يُنشأ كائن من أحد الصنفين PosixPath  أو WindowsPath عند إنشاء كائن منه.

2-PosixPath هو الصنف فرعي الذي يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز.

3-WindowsPath هو الصنف الفرعي الذي يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز.

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

إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف Path الذي يتولد (instantiates) من صنف المسارات الصلبة بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية.

انظر أيضًا

للقيام بمعالجة منخفضة المستوى للمسارات على السلاسل النصية، يمكنك أيضًا استخدام الوحدة os.path

التقابل مع الوحدة os

يبيّن الجدول التالي تقابل عدة توابع من الوحدة os  مع ما يقابلها و يكافئها من الوحدة PurePath و Path.

الوحدة 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

ملاحظة:

بالرغم من وجود بعض التقاطع في حالات استخدام التابعين os.path.relpath‎‎()‎ والتابع PurePath.relative_to()‎ إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين.