কম্পিউটার টিউটোরিয়াল

পাইথনে লিনাক্স টার্মিনালে ফরম্যাটেড টেক্সট প্রিন্ট করা

এই সেকশনে আমরা দেখব কিভাবে লিনাক্স টার্মিনালে ফরম্যাটেড টেক্সট প্রিন্ট করা যায়। ফরম্যাটিং দিয়ে আমরা টেক্সট কালার, স্টাইল এবং কিছু 스페শাল ফিচার পরিবর্তন করতে পারি।

লিনাক্স টার্মিনাল কিছু ANSI এসকেপ সিকোয়েন্স সাপোর্ট করে যা ফরম্যাটিং, কালার এবং অন্যান্য ফিচার কন্ট্রোল করে। তাই আমাদের টেক্সটের সাথে কিছু বাইট এমবেড করতে হয়। টার্মিনাল যখন সেগুলো ইন্টারপ্রেট করার চেষ্টা করে, সেগুলো কার্যকর হয়।

ANSI এসকেপ সিকোয়েন্সের সাধারণ সিনট্যাক্স নিচের মতো:

\x1b[A;B;C
  • A হলো টেক্সট ফরম্যাটিং স্টাইল
  • B হলো টেক্সট কালার বা ফোরগ্রাউন্ড কালার
  • C হলো ব্যাকগ্রাউন্ড কালার

A, B এবং C-এর জন্য কিছু প্রিডিফাইনড ভ্যালু রয়েছে। নিচে দেওয়া হলো:

টেক্সট ফরম্যাটিং স্টাইল (টাইপ A)

মান স্টাইল
1 বোল্ড (Bold)
2 ফেইন্ট (Faint)
3 ইটালিক (Italic)
4 আন্ডারলাইন (Underline)
5 ব্লিংকিং (Blinking)
6 ফাস্ট ব্লিংকিং (Fast Blinking)
7 রিভার্স (Reverse)
8 হাইড (Hide)
9 স্ট্রাইকথ্রু (Strikethrough)

টাইপ B এবং C-এর জন্য কালার কোড:

মান (B) মান (C) স্টাইল
30 40 ব্ল্যাক (Black)
31 41 রেড (Red)
32 42 গ্রিন (Green)
33 43 ইয়েলো (Yellow)
34 44 ব্লু (Blue)
35 45 মাজেন্টা (Magenta)
36 46 সায়ান (Cyan)
37 47 হোয়াইট (White)

উদাহরণ কোড

class Terminal_Format:
    Color_Code = {'black': 0, 'red': 1, 'green': 2, 'yellow': 3,
                  'blue': 4, 'magenta': 5, 'cyan': 6, 'white': 7}
    Format_Code = {'bold': 1, 'faint': 2, 'italic': 3, 'underline': 4,
                   'blinking': 5, 'fast_blinking': 6, 'reverse': 7,
                   'hide': 8, 'strikethrough': 9}
    def __init__(self):
        # প্রথমে টার্মিনাল স্টাইলিং রিসেট করুন
        self.reset_terminal()
    def reset_terminal(self):
        # প্রোপার্টি রিসেট করুন
        self.property = {'text_style': None, 'fg_color': None, 'bg_color': None}
        return self
    def config(self, style=None, fg_col=None, bg_col=None):
        # সব প্রোপার্টি সেট করুন
        return self.reset_terminal().text_style(style).foreground(fg_col).background(bg_col)
    def text_style(self, style):
        # টেক্সট স্টাইল সেট করুন
        if style in self.Format_Code.keys():
            self.property['text_style'] = self.Format_Code[style]
        return self
    def foreground(self, fg_col):
        # ফোরগ্রাউন্ড কালার সেট করুন
        if fg_col in self.Color_Code.keys():
            self.property['fg_color'] = 30 + self.Color_Code[fg_col]
        return self
    def background(self, bg_col):
        # ব্যাকগ্রাউন্ড কালার সেট করুন
        if bg_col in self.Color_Code.keys():
            self.property['bg_color'] = 40 + self.Color_Code[bg_col]
        return self
    def format_terminal(self, string):
        temp = [self.property['text_style'], self.property['fg_color'], self.property['bg_color']]
        temp = [str(x) for x in temp if x is not None]
        # ফরম্যাটেড স্ট্রিং ফেরত দিন
        return '\x1b[%sm%s\x1b[0m' % (';'.join(temp), string) if temp else string
    def output(self, my_str):
        print(self.format_terminal(my_str))

আউটপুট

পাইথনে লিনাক্স টার্মিনালে ফরম্যাটেড টেক্সট প্রিন্ট করা

স্ক্রিপ্ট চালাতে, টার্মিনালে পাইথন শেল খুলুন, এবং তারপর স্ক্রিপ্ট থেকে ক্লাস ইম্পোর্ট করুন।

এই ক্লাসের একটি অবজেক্ট তৈরি করার পর, আমাদের কনফিগার করতে হবে চাইতেই ফলাফল পাওয়ার জন্য। টার্মিনাল সেটিং পরিবর্তন করার প্রতিবার config() ফাংশন ব্যবহার করে কনফিগার করতে হবে।

  1. পাইথনে unittest মডিউল দিয়ে ইউনিট টেস্টিং

  2. পাইথনে Unittest মডিউল ব্যবহার করে ইউনিট টেস্টিং

  3. পাইথনে কনওয়ের গেম অফ লাইফ (Conway's Game of Life)

  4. পাইথনে cx_Freeze ব্যবহার করে এক্সিকিউটেবল বানানো