الفرق بين المراجعتين لصفحة: «Python/pathlib»
لا ملخص تعديل |
وضع المسارات |
||
سطر 4: | سطر 4: | ||
يقدم هذا الصنف عمليات لحساب المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا. وتوجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات، ونوجزها فيما يلي: | يقدم هذا الصنف عمليات لحساب المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا. وتوجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات، ونوجزها فيما يلي: | ||
1- <code>PurePath</code> هو صنف عام يمثل نكهة مسار النظام (حيث يُنشأ كائن من نوع <code>PurePosixPath</code> أو <code>PureWindowsPath</code> عند إنشاء كائن منه) | 1- <code>[[Python/pathlib/PurePath|PurePath]]</code> هو صنف عام يمثل نكهة مسار النظام (حيث يُنشأ كائن من نوع <code>PurePosixPath</code> أو <code>PureWindowsPath</code> عند إنشاء كائن منه) | ||
2- <code>PurePosixPath</code>هو الصنف الفرعي من الصنف <code>PurePath</code> الذي يمثل مسارات نظام الملفات في الأنظمة المغايرة لويندوز | 2- <code>[[Python/pathlib/PurePosixPath|PurePosixPath]]</code> هو الصنف الفرعي من الصنف <code>PurePath</code> الذي يمثل مسارات نظام الملفات في الأنظمة المغايرة لويندوز | ||
3- <code>PureWindowsPath</code> هو الصنف الفرعي من الصنف <code>PurePath</code> الذي يمثل مسارات نظام الملفات في ويندوز | 3- <code>[[Python/pathlib/PureWindowsPath|PureWindowsPath]]</code> هو الصنف الفرعي من الصنف <code>PurePath</code> الذي يمثل مسارات نظام الملفات في ويندوز | ||
===صنف المسارات الصلبة <code>Path</code>=== | |||
=== صنف المسارات الصلبة <code>Path</code> === | |||
يرث هذا الصنف من الصنف <code>PurePaths</code> ولكن مع تقديمه لعمليات الإدخال والإخراج، أي أن الكائنات المنشأة منه قادرة على الوصول الفعلي لملفات النظام والتعديل عليها، ويمكن إنشاء كائنات من هذا الصنف بثلاث طرق (نكهات مختلفة)، نوجزها فيما يلي: | يرث هذا الصنف من الصنف <code>PurePaths</code> ولكن مع تقديمه لعمليات الإدخال والإخراج، أي أن الكائنات المنشأة منه قادرة على الوصول الفعلي لملفات النظام والتعديل عليها، ويمكن إنشاء كائنات من هذا الصنف بثلاث طرق (نكهات مختلفة)، نوجزها فيما يلي: | ||
1- <code>Path</code> هو الصنف العام، يُنشأ كائن من أحد الصنفين <code>PosixPath</code> أو <code>WindowsPath</code> عند إنشاء كائن منه. | 1- <code>[[Python/pathlib/Path|Path]]</code> هو الصنف العام، يُنشأ كائن من أحد الصنفين <code>PosixPath</code> أو <code>WindowsPath</code> عند إنشاء كائن منه. | ||
2-<code>PosixPath</code> هو الصنف فرعي الذي يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز. | 2-<code>[[Python/pathlib/PosixPath|PosixPath]]</code> هو الصنف فرعي الذي يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز. | ||
3-<code>WindowsPath</code> هو الصنف الفرعي الذي يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز. | 3-<code>[[Python/pathlib/WindowsPath|WindowsPath]]</code> هو الصنف الفرعي الذي يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز. | ||
يُمثل الشكل التالي هيكلية الوراثة بين هذه الأصناف الثلاثة | يُمثل الشكل التالي هيكلية الوراثة بين هذه الأصناف الثلاثة | ||
[[ملف:pathlib-inheritance.png|بديل=صورة توضح طريقة الوراثة بين الأصناف في وحدة pathlib|حدود|وسط|800x800بك|طريقة الوراثة بين الأصناف في وحدة pathlib]] | [[ملف:pathlib-inheritance.png|بديل=صورة توضح طريقة الوراثة بين الأصناف في وحدة pathlib|حدود|وسط|800x800بك|طريقة الوراثة بين الأصناف في وحدة pathlib|وصلة=https://wiki.hsoub.com/%D9%85%D9%84%D9%81:pathlib-inheritance.png]] | ||
===ملاحظة بخصوص الاستخدام لأول مرة=== | |||
=== ملاحظة بخصوص الاستخدام لأول مرة === | |||
إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف <code>Path</code> الذي يتولد (instantiates) من صنف المسارات الصلبة بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية. | إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف <code>Path</code> الذي يتولد (instantiates) من صنف المسارات الصلبة بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية. | ||
{| class="wikitable" | {| class="wikitable" | ||
سطر 73: | سطر 71: | ||
|os.path.splitext() | |os.path.splitext() | ||
|PurePath.suffix | |PurePath.suffix | ||
|} | |}ملاحظة: | ||
ملاحظة: | |||
بالرغم من وجود بعض التقاطع في حالات استخدام التابعين <code>os.path.relpath()</code> والتابع <code>PurePath.relative_to()</code> إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين. | بالرغم من وجود بعض التقاطع في حالات استخدام التابعين <code>os.path.relpath()</code> والتابع <code>PurePath.relative_to()</code> إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين. |
مراجعة 15:26، 1 أغسطس 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()
إلا أن مدلول كل منهما مختلف بما يدعو لعدم اعتبارهما متكافئين.