الفرق بين المراجعتين لصفحة: «Python/pathlib»
سطر 4: | سطر 4: | ||
تحتوي هذه الوحدة على صنفين يسمحان بالتعامل مع المسارات، أحدهما للتعامل مع المسارات بشكلها النصي <code>PurePath</code> والآخر للقيام بعمليات الدخل والخرج على الملفات والمجلدات التي تشير إليها المسارات. | تحتوي هذه الوحدة على صنفين يسمحان بالتعامل مع المسارات، أحدهما للتعامل مع المسارات بشكلها النصي <code>PurePath</code> والآخر للقيام بعمليات الدخل والخرج على الملفات والمجلدات التي تشير إليها المسارات. | ||
==[[Python/pathlib/PurePath|صنف المسارات النقية <code>PurePath</code>]]== | ==[[Python/pathlib/PurePath|صنف المسارات النقية <code>PurePath</code>]]== | ||
يقدم هذا الصنف عمليات | يقدم هذا الصنف عمليات نصّية على المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا ولا يُشترط أن يكون المسار مشيرًا إلى ملفات حقيقية أصلًا. | ||
توجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات، ونوجزها فيما يلي: | |||
1- <code>[[Python/pathlib/PurePath|PurePath]]</code> هو صنف عام يمثل نكهة مسار النظام الذي يتم العمل عليه(حيث يُنشأ كائن من نوع <code>[[Python/pathlib/PurePosixPath|PurePosixPath]]</code> أو <code>[[Python/pathlib/PureWindowsPath|PureWindowsPath]]</code> عند إنشاء كائن منه حسب نظام التشغيل المُفسّر للشيفرة). | |||
3- <code>[[Python/pathlib/PureWindowsPath|PureWindowsPath]]</code> هو الصنف الفرعي من الصنف <code>[[Python/pathlib/PurePath|PurePath]]</code> الذي يمثل مسارات نظام الملفات في ويندوز | 2- <code>[[Python/pathlib/PurePosixPath|PurePosixPath]]</code> هو الصنف الفرعي من الصنف <code>[[Python/pathlib/PurePath|PurePath]]</code> الذي يمثل مسارات نظام الملفات في الأنظمة المغايرة لويندوز. | ||
3- <code>[[Python/pathlib/PureWindowsPath|PureWindowsPath]]</code> هو الصنف الفرعي من الصنف <code>[[Python/pathlib/PurePath|PurePath]]</code> الذي يمثل مسارات نظام الملفات في ويندوز. | |||
تسمح المسارات النقية بإنشاء كائنات من أحد الصنفين على كلي أنظمة التشغيل ويندوز و POSIX وذلك لأن جميع التوابع الخاصة بهذا النوع من الأصناف (المسارات النقية) هي توابع للتعامل النصي فقط مع المسارات. | |||
==[[Python/pathlib/Path|صنف المسارات الصلبة <code>Path</code>]]== | ==[[Python/pathlib/Path|صنف المسارات الصلبة <code>Path</code>]]== | ||
يرث هذا الصنف من الصنف <code>[[Python/pathlib/PurePath|PurePath]]</code> ولكن مع تقديمه لعمليات الإدخال والإخراج، أي أن الكائنات المنشأة منه قادرة على الوصول الفعلي لملفات النظام والتعديل عليها، ويمكن إنشاء كائنات من هذا الصنف بثلاث طرق (نكهات مختلفة)، نوجزها فيما يلي: | يرث هذا الصنف من الصنف <code>[[Python/pathlib/PurePath|PurePath]]</code> ولكن مع تقديمه لعمليات الإدخال والإخراج، أي أن الكائنات المنشأة منه قادرة على الوصول الفعلي لملفات النظام والتعديل عليها، ويمكن إنشاء كائنات من هذا الصنف بثلاث طرق (نكهات مختلفة)، نوجزها فيما يلي: | ||
سطر 16: | سطر 20: | ||
1- <code>[[Python/pathlib/Path|Path]]</code> هو الصنف العام، يُنشأ كائن من أحد الصنفين <code>[[Python/pathlib/PosixPath|PosixPath]]</code> أو <code>[[Python/pathlib/WindowsPath|WindowsPath]]</code> عند إنشاء كائن منه. | 1- <code>[[Python/pathlib/Path|Path]]</code> هو الصنف العام، يُنشأ كائن من أحد الصنفين <code>[[Python/pathlib/PosixPath|PosixPath]]</code> أو <code>[[Python/pathlib/WindowsPath|WindowsPath]]</code> عند إنشاء كائن منه. | ||
2-<code>[[Python/pathlib/PosixPath|PosixPath]]</code> هو الصنف فرعي الذي يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز. | 2-<code>[[Python/pathlib/PosixPath|PosixPath]]</code> هو الصنف فرعي الذي يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز، ولا يُسمح بإنشاء كائنات منه في نظام ويندوز. | ||
3-<code>[[Python/pathlib/WindowsPath|WindowsPath]]</code> هو الصنف الفرعي الذي يمثل المسارات الصلبة لمسارات أنظمة ملفات | 3-<code>[[Python/pathlib/WindowsPath|WindowsPath]]</code> هو الصنف الفرعي الذي يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز، ولا يٌسمح بإنشاء كائنات منه في الأنظمة المغايرة لويندوز. | ||
يُمثل الشكل التالي هيكلية الوراثة بين هذه الأصناف الثلاثة | يُمثل الشكل التالي هيكلية الوراثة بين هذه الأصناف الثلاثة: | ||
[[ملف:pathlib-inheritance.png|بديل=صورة توضح طريقة الوراثة بين الأصناف في وحدة pathlib|حدود|وسط|800x800بك|طريقة الوراثة بين الأصناف في وحدة pathlib|وصلة=https://wiki.hsoub.com/%D9%85%D9%84%D9%81:pathlib-inheritance.png]] | [[ملف:pathlib-inheritance.png|بديل=صورة توضح طريقة الوراثة بين الأصناف في وحدة pathlib|حدود|وسط|800x800بك|طريقة الوراثة بين الأصناف في وحدة pathlib|وصلة=https://wiki.hsoub.com/%D9%85%D9%84%D9%81:pathlib-inheritance.png]] |
مراجعة 17:26، 15 أغسطس 2018
pathlib — وحدة مسارات نظام الملفات كائنية التوجه
تقدم هذه الوحدة أصنافًا تمثّل مسارات نظام التشغيل مع دلالات ملائمة لمختلف أنظمة التشغيل، وقد أُضيفت هذه الوحدة إلى بايثون في النسخة 3.4.
تحتوي هذه الوحدة على صنفين يسمحان بالتعامل مع المسارات، أحدهما للتعامل مع المسارات بشكلها النصي PurePath
والآخر للقيام بعمليات الدخل والخرج على الملفات والمجلدات التي تشير إليها المسارات.
صنف المسارات النقية PurePath
يقدم هذا الصنف عمليات نصّية على المسارات دون أي عمليات إدخال أو إخراج، أي أنه لا يتم الوصول الفعلي إلى نظام الملفات أبدًا ولا يُشترط أن يكون المسار مشيرًا إلى ملفات حقيقية أصلًا.
توجد ثلاث طرائق للوصول إلى هذه الأصناف، ونسمي هذه الطرائق بالنكهات، ونوجزها فيما يلي:
1- PurePath
هو صنف عام يمثل نكهة مسار النظام الذي يتم العمل عليه(حيث يُنشأ كائن من نوع PurePosixPath
أو PureWindowsPath
عند إنشاء كائن منه حسب نظام التشغيل المُفسّر للشيفرة).
2- PurePosixPath
هو الصنف الفرعي من الصنف PurePath
الذي يمثل مسارات نظام الملفات في الأنظمة المغايرة لويندوز.
3- PureWindowsPath
هو الصنف الفرعي من الصنف PurePath
الذي يمثل مسارات نظام الملفات في ويندوز.
تسمح المسارات النقية بإنشاء كائنات من أحد الصنفين على كلي أنظمة التشغيل ويندوز و POSIX وذلك لأن جميع التوابع الخاصة بهذا النوع من الأصناف (المسارات النقية) هي توابع للتعامل النصي فقط مع المسارات.
صنف المسارات الصلبة Path
يرث هذا الصنف من الصنف PurePath
ولكن مع تقديمه لعمليات الإدخال والإخراج، أي أن الكائنات المنشأة منه قادرة على الوصول الفعلي لملفات النظام والتعديل عليها، ويمكن إنشاء كائنات من هذا الصنف بثلاث طرق (نكهات مختلفة)، نوجزها فيما يلي:
1- Path
هو الصنف العام، يُنشأ كائن من أحد الصنفين PosixPath
أو WindowsPath
عند إنشاء كائن منه.
2-PosixPath
هو الصنف فرعي الذي يمثل المسارات الصلبة لمسارات أنظمة الملفات المغايرة لنظام ويندوز، ولا يُسمح بإنشاء كائنات منه في نظام ويندوز.
3-WindowsPath
هو الصنف الفرعي الذي يمثل المسارات الصلبة لمسارات أنظمة ملفات ويندوز، ولا يٌسمح بإنشاء كائنات منه في الأنظمة المغايرة لويندوز.
يُمثل الشكل التالي هيكلية الوراثة بين هذه الأصناف الثلاثة:
ملاحظة بخصوص الاستخدام لأول مرة
إن لم تكن قد استخدمت هذه الوحدة من قبل أو أنك غير متأكد أي صنف عليك أن تستخدم لأداء مهمة ما، فعلى الأغلب عليك استخدام الصنف Path
الذي يتولد (instantiates) من صنف المسارات الصلبة بما يلائم المنصة التي تُفسّر فيها الشيفرة البرمجية.
انظر أيضًا
إذا أردت تجربة هذا الصنف في نظام يونكس، فيمكنك استخدام المحاكي من موقع Repl.it