تقنية

shlex في بايثون: هل تبقى علامتا الاقتباس؟

طول الرمز مع حذف التنصيص وبقائه
المدخل "a b" c. [1] [2]

افحص القيمة. [1] [2]

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

الخيار يغير بقاء علامتي الاقتباس. [1] [2]

  • للمدخل "a b" c، مع True الأول a b وطوله 3. [1] [2]
  • مع False الأول "a b" وطوله 5. [1] [2]
  • المسافة بين الحرفين تبقى داخل رمز واحد في الحالتين. [1] [2]
  • الاقتباس الفارغ يعيد سلسلة فارغة مع True، وعلامتين مع False. [1] [2]
  • اختبرنا shlex.split في 3.12.14؛ هذا تقسيم نص، وليس تنفيذ أمر. [1] [2]

المثال

import shlex as s
for p in [True,False]:
 t=s.split('"a b" c',posix=p)
 print(p,repr(t[0]),len(t[0]))

[1] [2]

المخرجات: True 'a b' 3 ثم False '"a b"' 5. [1] [2]

ما الذي بقي؟

لكل قائمة رمزان، والثاني c. حُذفت علامتا التنصيص مع True، وبقيتا مع False. [1] [2]

العلامتان المفردتان في عرض repr تصفان سلسلة؛ لا نعدهما ضمن طولها. [1] [2]

القيمة الفارغة

للمدخل "" c: الأول مع True طوله 0، ومع False طوله 2؛ ليسا القيمة نفسها. [1] [2]

سلسلة فارغة مقابل علامتي تنصيص
المدخل "" c. [1] [2]

النطاق

المثال بلا هروب أو تعليقات؛ لا نعمم على صدفات أخرى. [1] [2]

المراجع

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

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