relative_to مع walk_up تحسب مسارًا بين فرعين هنا. [1] [2]
الخلاصة السريعة
فعّل walk_up=True للحصول على المسار النسبي في المثال. [1] [2]
- الافتراضي يرفض المثال بـValueError. [1] [2]
- الهدف /canopy/branch/bud.dat؛ الأساس /canopy/twig. [1] [2]
- walk_up=True يعطي ../branch/bud.dat. [1] [2]
- مزج مطلق بنسبي يثير ValueError حتى مع True. [1] [2]
- الحساب نصي؛ لا يحل روابط رمزية، ولا يثبت احتواء ملف. [1] [2]
- PurePosixPath على 3.12.14؛ بلا فتح ملفات. [1] [2]
المثال
from pathlib import PurePosixPath as P
p=P("/canopy/branch/bud.dat")
base=P("/canopy/twig")
try:
print(p.relative_to(base))
except ValueError:
print("ValueError")
print(p.relative_to(base,walk_up=True))الوالد المشترك
النتيجة: ValueError ثم ../branch/bud.dat. تعني .. الرجوع من twig إلى canopy قبل branch. [1] [2]

حدود الحساب
إذا بقي الهدف مطلقًا وصار الأساس canopy/twig نسبيًا، يرفض walk_up=True الزوج أيضًا. [1] [2]
اختبرنا PurePosixPath على CPython 3.12.14؛ حساب نصي بلا فحص ملفات أو حل روابط رمزية، ولا يثبت احتواء ملف فعلي. [1] [2]
المراجع
- Python 3.12: relative paths
- CPython 3.12.14: walk_up
- موضوع تك: لغة بايثون — مفردات
- موضوع تك: تطبيقات بايثون — مفردات
أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.
