यूनिक्स सिस्टम में टर्मिनल कंट्रोल्स को बदलने के लिए, हम पायथन में tty संबंधित मेथड्स का उपयोग कर सकते हैं। tty मॉड्यूल का उपयोग करके, हम टर्मिनल के दो अलग-अलग मोड सेट कर सकते हैं। रॉ मोड और cbreak मोड।
tty मॉड्यूल का उपयोग करने के लिए, हमें इसे आयात करना चाहिए:
import tty
tty मॉड्यूल के कुछ मॉड्यूल्स हैं, ये हैं:
मेथड tty.setraw(fd, when = termios.TCSAFLUSH)
यह मेथड टर्मिनल मोड को रॉ मोड में बदलने के लिए उपयोग किया जाता है। रॉ मोड में, कर्सर नई लाइन पर चला जाता है लेकिन कैरिज रिटर्न ऑपरेशन नहीं किया जाता है। इसके अलावा, हमें इनपुट को सिस्टम में भेजने के लिए रिटर्न कुंजी दबाने की आवश्यकता नहीं होती है, यह लिखने के बाद स्वचालित रूप से भेज देता है।
मेथड tty.setcbreak(fd, when = termios.TCSAFLUSH)
यह मेथड टर्मिनल मोड को cbreak मोड में बदलने के लिए उपयोग किया जाता है। इस मोड में, कर्सर नई लाइन पर चला जाता है हमें इनपुट को सिस्टम में भेजने के लिए रिटर्न कुंजी दबाने की आवश्यकता नहीं होती है, यह लिखने के बाद स्वचालित रूप से भेज देता है।
उदाहरण कोड
import sys
import tty
import termios
file_desc = sys.stdin.fileno()
old_setting = termios.tcgetattr(file_desc)
tty.setraw(sys.stdin)
for i in range(5):
char = sys.stdin.read(1)
print("Char: " + str(char))
termios.tcsetattr(file_desc, termios.TCSADRAIN, old_setting)
आउटपुट
$ python3 example.py Char: K Char: E Char: 5 Char: 2 Char: @