本文整理匯總了Python中termios.ECHO屬性的典型用法代碼示例。如果您正苦於以下問題:Python termios.ECHO屬性的具體用法?Python termios.ECHO怎麽用?Python termios.ECHO使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在類termios
的用法示例。
在下文中一共展示了termios.ECHO屬性的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: restore_echo
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def restore_echo():
"""Hack for https://stackoverflow.com/questions/6488275 equivalent
issue with Nmap (from
http://stackoverflow.com/a/8758047/3223422)
"""
try:
fdesc = sys.stdin.fileno()
except ValueError:
return
try:
attrs = termios.tcgetattr(fdesc)
except termios.error:
return
attrs[3] = attrs[3] | termios.ECHO
termios.tcsetattr(fdesc, termios.TCSADRAIN, attrs)
示例2: __init__
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def __init__(self, verbosity, maxJobs):
super().__init__(verbosity)
self.__index = 1
self.__maxJobs = maxJobs
self.__jobs = {}
self.__slots = [None] * maxJobs
self.__tasksDone = 0
self.__tasksNum = 1
# disable cursor
print("\x1b[?25l")
# disable echo
try:
import termios
fd = sys.stdin.fileno()
self.__oldTcAttr = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSADRAIN, new)
except ImportError:
pass
示例3: __init__
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def __init__(self, args, close_stderr=False):
pid, fd = pty.fork()
if pid == 0:
# We're the child. Transfer control to command.
if close_stderr:
dev_null = os.open('/dev/null', 0)
os.dup2(dev_null, 2)
os.execvp(args[0], args)
else:
# Disable echoing.
attr = termios.tcgetattr(fd)
attr[3] = attr[3] & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, attr)
# Set up a file()-like interface to the child process
self.r = os.fdopen(fd, 'r', 1)
self.w = os.fdopen(os.dup(fd), 'w', 1)
示例4: init
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def init():
if os.name == 'posix':
global old
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ICANON & ~termios.ECHO
new[6][termios.VMIN] = 1
new[6][termios.VTIME] = 0
# -- Cambiar los atributos
termios.tcsetattr(fd, termios.TCSANOW, new)
# -- Restaurar el terminal a la salida
atexit.register(cleanup_console)
pass
# -------------------------------------
# Pequena prueba del modulo
# -------------------------------------
示例5: launch_proc_with_pty
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def launch_proc_with_pty(args, stdin=None, stdout=None, stderr=None, echo=True):
"""Similar to pty.fork, but handle stdin/stdout according to parameters
instead of connecting to the pty
:return tuple (subprocess.Popen, pty_master)
"""
def set_ctty(ctty_fd, master_fd):
os.setsid()
os.close(master_fd)
fcntl.ioctl(ctty_fd, termios.TIOCSCTTY, 0)
if not echo:
termios_p = termios.tcgetattr(ctty_fd)
# termios_p.c_lflags
termios_p[3] &= ~termios.ECHO
termios.tcsetattr(ctty_fd, termios.TCSANOW, termios_p)
(pty_master, pty_slave) = os.openpty()
# pylint: disable=not-an-iterable
p = yield from asyncio.create_subprocess_exec(*args,
stdin=stdin,
stdout=stdout,
stderr=stderr,
preexec_fn=lambda: set_ctty(pty_slave, pty_master))
os.close(pty_slave)
return p, open(pty_master, 'wb+', buffering=0)
示例6: _setecho
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def _setecho(fd, state):
errmsg = 'setecho() may not be called on this platform (it may still be possible to enable/disable echo when spawning the child process)'
try:
attr = termios.tcgetattr(fd)
except termios.error as err:
if err.args[0] == errno.EINVAL:
raise IOError(err.args[0], '%s: %s.' % (err.args[1], errmsg))
raise
if state:
attr[3] = attr[3] | termios.ECHO
else:
attr[3] = attr[3] & ~termios.ECHO
try:
# I tried TCSADRAIN and TCSAFLUSH, but these were inconsistent and
# blocked on some platforms. TCSADRAIN would probably be ideal.
termios.tcsetattr(fd, termios.TCSANOW, attr)
except IOError as err:
if err.args[0] == errno.EINVAL:
raise IOError(err.args[0], '%s: %s.' % (err.args[1], errmsg))
raise
示例7: getecho
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def getecho(self):
'''This returns the terminal echo mode. This returns True if echo is
on or False if echo is off. Child applications that are expecting you
to enter a password often set ECHO False. See waitnoecho().
Not supported on platforms where ``isatty()`` returns False. '''
try:
attr = termios.tcgetattr(self.fd)
except termios.error as err:
errmsg = 'getecho() may not be called on this platform'
if err.args[0] == errno.EINVAL:
raise IOError(err.args[0], '%s: %s.' % (err.args[1], errmsg))
raise
self.echo = bool(attr[3] & termios.ECHO)
return self.echo
示例8: __init__
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def __init__(self):
'''Creates a KBHit object that you can call to do various keyboard things.
'''
if os.name == 'nt':
pass
else:
# Save the terminal settings
self.fd = sys.stdin.fileno()
self.new_term = termios.tcgetattr(self.fd)
self.old_term = termios.tcgetattr(self.fd)
# New terminal setting unbuffered
self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)
# Support normal-terminal reset at exit
atexit.register(self.set_normal_term)
示例9: _setecho
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def _setecho(fd, state):
errmsg = 'setecho() may not be called on this platform'
try:
attr = termios.tcgetattr(fd)
except termios.error as err:
if err.args[0] == errno.EINVAL:
raise IOError(err.args[0], '%s: %s.' % (err.args[1], errmsg))
raise
if state:
attr[3] = attr[3] | termios.ECHO
else:
attr[3] = attr[3] & ~termios.ECHO
try:
# I tried TCSADRAIN and TCSAFLUSH, but these were inconsistent and
# blocked on some platforms. TCSADRAIN would probably be ideal.
termios.tcsetattr(fd, termios.TCSANOW, attr)
except IOError as err:
if err.args[0] == errno.EINVAL:
raise IOError(err.args[0], '%s: %s.' % (err.args[1], errmsg))
raise
示例10: getecho
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def getecho(self):
'''This returns the terminal echo mode. This returns True if echo is
on or False if echo is off. Child applications that are expecting you
to enter a password often set ECHO False. See waitnoecho().
Not supported on platforms where ``isatty()`` returns False. '''
try:
attr = termios.tcgetattr(self.child_fd)
except termios.error as err:
errmsg = 'getecho() may not be called on this platform'
if err.args[0] == errno.EINVAL:
raise IOError(err.args[0], '%s: %s.' % (err.args[1], errmsg))
raise
self.echo = bool(attr[3] & termios.ECHO)
return self.echo
示例11: __init__
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def __init__(self):
'''Creates a KBHit object that you can call to do various keyboard things.
'''
if os.name == 'nt':
pass
else:
# Save the terminal settings
self.fd = sys.stdin.fileno()
self.new_term = termios.tcgetattr(self.fd)
self.old_term = termios.tcgetattr(self.fd)
# New terminal setting unbuffered
self.new_term[3] = (self.new_term[3] & ~termios.ICANON & ~termios.ECHO)
termios.tcsetattr(self.fd, termios.TCSAFLUSH, self.new_term)
# Support normal-terminal reset at exit
atexit.register(self.set_normal_term)
示例12: wait_key
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def wait_key():
""" Wait for a key press on the console and return it. """
result = None
if os.name == 'nt':
result = input("Press Enter to continue...")
else:
import termios
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
try:
result = sys.stdin.read(1)
except IOError:
pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
return result
示例13: getch
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def getch():
"""getch function
"""
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ICANON & ~termios.ECHO
new[6][termios.VMIN] = 1
new[6][termios.VTIME] = 0
termios.tcsetattr(fd, termios.TCSANOW, new)
key = None
try:
key = os.read(fd, 80)
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, old)
return key
示例14: getch
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def getch():
"""Make a get character keyboard method for Posix machines.
"""
fd = sys.stdin.fileno()
old = termios.tcgetattr(fd)
new = termios.tcgetattr(fd)
new[3] = new[3] & ~termios.ICANON & ~termios.ECHO
new[6][termios.VMIN] = 1
new[6][termios.VTIME] = 0
termios.tcsetattr(fd, termios.TCSANOW, new)
key = None
try:
key = os.read(fd, 4)
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, old)
return key
示例15: wait_key
# 需要導入模塊: import termios [as 別名]
# 或者: from termios import ECHO [as 別名]
def wait_key():
''' Wait for a key press on the console and return it. '''
result = None
if os.name == 'nt':
import msvcrt
result = msvcrt.getch()
else:
import termios
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
try:
result = sys.stdin.read(1)
except IOError:
pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
return result