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. | व्हेन एट्रिब्यूट और अर्थ |
|---|---|
| 1 | TCSANOW एट्रिब्यूट को तुरंत बदलें |
| 2 | TCSADRAIN सभी क्यूड आउटपुट ट्रांसमिट होने के बाद एट्रिब्यूट बदलें |
| 3 | TCSAFLUSH सभी क्यूड आउटपुट ट्रांसमिट होने के बाद एट्रिब्यूट बदलें, और सभी क्यूड इनपुट को डिस्कार्ड करें। |
मेथड termios.tcsendbreak(fd, duration)
यह फाइल डिस्क्रिप्टर पर एक ब्रेक भेजता है। जब अवधि शून्य होती है, तो यह 0.25-0.5 सेकंड के लिए ब्रेक भेजता है।
मेथड 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