termios 모듈은 tty I/O 제어를 위해 POSIX에 대한 인터페이스를 제공합니다. Unix 시스템에서만 사용할 수 있습니다.
termios 모듈을 사용하려면 −
를 사용하여 가져와야 합니다.import termios
이 모듈의 모든 메서드는 파일 설명자를 인수로 사용합니다. termios 모듈에는 다음과 같은 몇 가지 모듈이 있습니다.
메소드 termios.tcgetattr(fd)
이 메소드는 주어진 파일 디스크립터에 대한 tty 속성 목록을 리턴합니다. 속성은 iflag, oflag, cflag, lflag, ispeed, ospeed, cc입니다.
메서드 termios.tcsetattr(fd, when, 속성)
이 메소드는 속성 목록에서 속성을 설정하는 데 사용됩니다. 두 번째 인수는 속성이 변경되는 시기를 결정합니다. when 섹션에는 몇 가지 상수가 있습니다. 이들은 -
시니어 번호 | 속성 및 의미가 있는 경우 |
---|---|
1 | TCSANOW 즉시 속성 변경 |
2 | TCSADRIN 대기 중인 모든 출력을 전송한 후 속성 변경 |
3 | TCSAFLUSH 대기 중인 모든 출력을 전송한 후 속성을 변경하고 대기 중인 모든 입력을 버립니다. |
메서드 termios.tcsendbreak(fd, 기간)
파일 설명자에 중단을 보냅니다. 지속 시간이 0이면 0.25-0.5초 동안 휴식을 보냅니다.
메소드 termios.tcdrain(fd)
이 메소드는 모든 출력이 파일 디스크립터에 기록될 때까지 대기하는 데 사용됩니다.
메서드 termios.tcflush(fd, queue)
이 방법은 fd의 큐 데이터를 버리는 데 사용됩니다. 대기열 선택기는 수행될 대기열을 지정하기 위해 있습니다. 티플러시 입력 대기열 및 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