الدالة bytes.expandtabs()
في بايثون
تحوّل الدالة جميع علامات الجدولة في ترميز ASCII إلى مسافة بيضاء واحدة أو أكثر في الترميز ذاته.
البنية العامة
b.expandtabs()
المعاملات
tabsize
يحدّد مواقع علامات الجدولة في التسلسل الثنائي (القيمة الافتراضية هي 8
، فتكون مواقع علامات الجدولة في الأعمدة 0
، 8
، 16
وهكذا).
القيمة المعادة
تعيد الدالة expandtabs()
نسخة من التسلسل الثنائي بعد تحويل جميع علامات الجدولة بترميز ASCII إلى مسافة بيضاء واحدة أو أكثر من الترميز ذاته، وذلك بالاعتماد على العمود الحالي وحجم علامة الجدولة المحدد بواسطة المعامل tabsize
.
توضيح
تعمل الدالة عن طريق جعل العمود الحالي هو العمود 0
ثم فحص التسلسل الثنائي بايتًا بايتًا. فإن كان البايت هو علامة جدولة بترميز ASCII (b'\t'
) تضاف مسافة ASCII واحدة أو أكثر إلى النتيجة وتستمر الإضافة إلى أن يصبح العمود الحالي مساويًا لموقع علامة الجدولة التالية (لا تنسخ الدالة علامة الجدولة إلى التسلسل الجديد).
إن وصلت الدالة في عملية الفحص إلى بايت السطر الجديد (b'\n'
) أو (b'\r'
) في ترميز ASCII فإنّها تنسخه وتعيد ضبط العمود الحالي إلى الصفر.
أما بقية البايتات فتنسخ كما هي دون تغيير، ويُزاد العمود الحالي بمقدار 1
بصرف النظر عن كيفية تمثيل البايت عند الطباعة.
أمثلة
يوضح المثال التالي طريقة استخدام هذه الدالة والنتائج المعادة:
>>> b'01\t012\t0123\t01234'.expandtabs()
b'01 012 0123 01234'
>>> b'01\t012\t0123\t01234'.expandtabs(4)
b'01 012 0123 01234'