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

পাইথনে POSIX স্টাইল TTY কন্ট্রোল


termios মডিউল TTY I/O কন্ট্রোলের জন্য POSIX ইন্টারফেস প্রদান করে। এটি শুধু ইউনিক্স সিস্টেমের জন্য উপলব্ধ।

termios মডিউল ব্যবহার করতে হলে, আমাদের এটি ইম্পোর্ট করতে হবে -

import termios

এই মডিউলের সব মেথড ফাইল ডেসক্রিপ্টরকে আর্গুমেন্ট হিসেবে নেয়। termios মডিউলের কিছু মডিউল রয়েছে, এগুলো হলো -

termios.tcgetattr(fd) মেথড

এই মেথড দেওয়া ফাইল ডেসক্রিপ্টরের জন্য TTY অ্যাট্রিবিউটের একটি লিস্ট ফেরত দেয়। অ্যাট্রিবিউটগুলো হলো iflag, oflag, cflag, lflag, ispeed, ospeed, cc।

termios.tcsetattr(fd, when, attributes) মেথড

এই মেথড অ্যাট্রিবিউটের লিস্ট থেকে অ্যাট্রিবিউট সেট করতে ব্যবহৃত হয়। দ্বিতীয় আর্গুমেন্ট নির্ধারণ করে অ্যাট্রিবিউট কখন পরিবর্তন হবে। when সেকশনের জন্য কিছু কনস্ট্যান্ট রয়েছে। এগুলো হলো -

Sr.No.When Attribute & Meaning
1

TCSANOW

অ্যাট্রিবিউট অবিলম্বে পরিবর্তন

2

TCSADRAIN

সকল কিউড আউটপুট ট্রান্সমিট হওয়ার পর অ্যাট্রিবিউট পরিবর্তন

3

TCSAFLUSH

সকল কিউড আউটপুট ট্রান্সমিট হওয়ার পর, এবং সকল কিউড ইনপুট ডিসকার্ড করার পর অ্যাট্রিবিউট পরিবর্তন।

termios.tcsendbreak(fd, duration) মেথড

এটি ফাইল ডেসক্রিপ্টরে একটি ব্রেক পাঠায়। যখন duration শূন্য, তবে এটি ০.২৫-০.৫ সেকেন্ডের জন্য একটি ব্রেক পাঠায়।

termios.tcdrain(fd) মেথড

এই মেথড ফাইল ডেসক্রিপ্টরে লেখা সকল আউটপুট সম্পূর্ণ হওয়া পর্যন্ত অপেক্ষা করতে ব্যবহৃত হয়।

termios.tcflush(fd, queue) মেথড

এই মেথড fd-এ কিউ ডেটা ডিসকার্ড করতে ব্যবহৃত হয়। কিউ সিলেক্টর নির্দিষ্ট করে কোন কিউতে এটি পারফর্ম হবে। TCIFLUSH ইনপুট কিউর জন্য এবং TCOFLUSH আউটপুট কিউর জন্য। এবং TCIOFLUSH উভয়ের জন্য।

উদাহরণ কোড

import termios, sys

def get_password(prompt="Enter Password: "):
    file_desc = sys.stdin.fileno()
    old_pass = termios.tcgetattr(file_desc)
    new_pass = termios.tcgetattr(file_desc)
    new_pass[3] &= ~termios.ECHO
    try:
        termios.tcsetattr(file_desc, termios.TCSADRAIN, new_pass)
        password = input(prompt)
    finally:
        termios.tcsetattr(file_desc, termios.TCSADRAIN, old_pass)
    return password

আউটপুট

$ python3 example.py
Enter Password:
Entered Password: my_password

  1. Python-এ pylab ব্যবহার করে একটি ফিগার রিমোটলি সেভ করার পদ্ধতি

  2. পাইথনে POST মেথড ব্যবহার করে তথ্য পাস করা

  3. পাইথনে GET মেথড ব্যবহার করে তথ্য পাস করা

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