تقنية

مساواة المسارات في بايثون: هل Root/Bud يساوي root/bud؟

مقارنة Root/Bud وroot/bud في ويندوز تعطي True.
مساواة ويندوز.

مساواة المسارات من النوع نفسه تراعي قواعد حالة الأحرف لذلك النوع. [1]

الخلاصة السريعة

نعم مع PureWindowsPath؛ لا مع PurePosixPath في المثال. [1]

  • مساواة المسارات من النوع نفسه تراعي قواعد حالة الأحرف لذلك النوع. [1]
  • المسارات الصرفة لا تدخل نظام الملفات لإجراء عمليات المسار. [1]
  • مثال مؤلف على CPython 3.12.14: s وt أدناه؛ PureWindowsPath(s)==PureWindowsPath(t) تعطي True. [1]
  • PurePosixPath(s)==PurePosixPath(t) تعطي False؛ اختلاف حالة الأحرف هنا مؤثر. [1]
  • تحكم: استبدال R وB بـr وb في النص الأول يعطي الثاني؛ المقارنة النصية الأصلية تعطي False، وتبقى s وt دون تغيير. [1]

قاعدة النوع

مساواة المسارات من النوع نفسه تراعي قواعد حالة الأحرف لذلك النوع. [1]

مقارنة دون ملفات

المسارات الصرفة لا تدخل نظام الملفات لإجراء عمليات المسار. [1]

المقارنة في ويندوز

مثال مؤلف على CPython 3.12.14: s وt أدناه؛ PureWindowsPath(s)==PureWindowsPath(t) تعطي True. [1]

from pathlib import PureWindowsPath, PurePosixPath s="Root/Bud" t="root/bud" [1]

المقارنة نفسها في بوسيكس تعطي False.
مساواة بوسيكس.

بوسيكس والتحكم

PurePosixPath(s)==PurePosixPath(t) تعطي False؛ اختلاف حالة الأحرف هنا مؤثر. [1]

PurePosixPath(s)==PurePosixPath(t) -> False [1]

تحكم: استبدال R وB بـr وb في النص الأول يعطي الثاني؛ المقارنة النصية الأصلية تعطي False، وتبقى s وt دون تغيير. [1]

المراجع

  1. Python — path equality

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.