التابع bytes.expandtabs()‎ في بايثون

من موسوعة حسوب
< Python‏ | bytes
(بالتحويل من Python/bytearray/expandtabs)

يحوّل التابع جميع علامات الجدولة في ترميز ASCII إلى مسافة بيضاء واحدة أو أكثر في الترميز ذاته.

البنية العامة

bytes.expandtabs(tabsize=8)

المعاملات

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'

انظر أيضًا

  • البايتات في بايثون.
  • التابع bytes.isspace()‎: التحقق ممّا إذا كانت جميع البايتات في التسلسل الثنائي هي بايتات المسافة البيضاء في ترميز ASCII، ومن أنّ التسلسل ليس فارغًا.

مصادر