تقنية

shlex.join في بايثون: هل يعيد السطر كما كتبته؟

نص مبني يختلف عن السطر الأصلي
مقارنة النص. [1] [2]

نقارن النص الأصلي بقيمه بعد إعادة البناء. [1] [2]

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

لا يلزم؛ النص يتغير هنا، لكن قائمة القيم تعود نفسها. [1] [2]

  • قسّمنا نصًا فيه مسافات زائدة إلى قيمتين. [1] [2]
  • هما red وblue green بهذا الترتيب. [1] [2]
  • النص المبني هو red 'blue green'. [1] [2]
  • مساواة النص تعطي False؛ مساواة القائمتين True. [1] [2]
  • اختبرنا 3.12.14 بإعداد split الافتراضي؛ لم ننفذ أمرًا. [1] [2]

المثال

import shlex as f
s="  red   'blue green'  "
t=f.split(s)
u=f.join(t)
print(repr(u))
print(u==s)
print(f.split(u)==t)

[1] [2]

النص والقيم

النص هنا فقد المسافات الزائدة خارج القيم. تستعمل join مسافة واحدة بين النصوص المقتبسة التي تبنيها. المسافة داخل blue green بقيت جزءًا من القيمة الثانية. معنى العكس هنا لا يضمن استعادة كل محارف السطر الأصلي. [1] [2]

قائمتا القيم متساويتان بعد إعادة التقسيم
مقارنة القيم. [1] [2]

حد الفحص

split الافتراضي يعمل بوضع POSIX. في فحص آخر، الاقتباس المزدوج حول القيمة الثانية يتحول إلى مفرد عند البناء. نفحص النص؛ لم نشغله في صدفة. [1] [2]

المراجع

  1. Python 3.12: shlex.join
  2. CPython 3.12.14: shlex.py
  3. موضوع تك: لغة بايثون — مفردات
  4. موضوع تك: تطبيقات بايثون — مفردات

للتوسع: بحث عن لغات البرمجة

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