本文整理汇总了Python中tty.setraw函数的典型用法代码示例。如果您正苦于以下问题:Python setraw函数的具体用法?Python setraw怎么用?Python setraw使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了setraw函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: interactive
def interactive(self, command, *args, **options):
import termios
import tty
with self._get_chan(options.pop('get_pty', False)) as chan:
with self._forward_agent(chan):
with timeout(self._timeout):
command = self._format_command(command, args, options)
chan.get_pty()
oldtty = termios.tcgetattr(sys.stdin)
try:
tty.setraw(sys.stdin.fileno())
tty.setcbreak(sys.stdin.fileno())
chan.settimeout(0.0)
chan.exec_command(command)
while True:
rlist = select.select([chan, sys.stdin], [], [])[0]
if chan in rlist:
try:
data = self._manage_encoding(chan.recv(1024))
if len(data) == 0:
break
sys.stdout.write(data)
sys.stdout.flush()
except socket.timeout:
pass
if sys.stdin in rlist:
data = sys.stdin.read(1)
if len(data) == 0:
break
chan.send(data)
finally:
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)
开发者ID:fmenabe,项目名称:python-unix,代码行数:34,代码来源:__init__.py
示例2: main
def main ():
signal.signal (signal.SIGCHLD, signal_handler)
pid, fd = pty.fork()
if pid == 0:
os.write (sys.stdout.fileno(), 'This is a test.\nThis is a test.')
time.sleep(10000)
nonblock (fd)
tty.setraw(fd) #STDIN_FILENO)
print 'Sending SIGKILL to child pid:', pid
time.sleep(2)
os.kill (pid, signal.SIGKILL)
print 'Entering to sleep...'
try:
time.sleep(2)
except:
print 'Sleep interrupted'
try:
os.kill(pid, 0)
print '\tChild is alive. This is ambiguous because it may be a Zombie.'
except OSError as e:
print '\tChild appears to be dead.'
# print str(e)
print
print 'Reading from master fd:', os.read (fd, 1000)
开发者ID:AmineCherrai,项目名称:pexpect,代码行数:25,代码来源:check_handler.py
示例3: setup_tty_for_pty
def setup_tty_for_pty(func):
"""
Sets up tty for raw mode while retaining original tty settings and then
starts the reactor to connect to the pty. Upon exiting pty, restores
original tty settings.
:param func:
The callable to run after the tty is ready, such as ``reactor.run``
"""
# Preserve original tty settings
stdin_fileno = sys.stdin.fileno()
old_ttyattr = tty.tcgetattr(stdin_fileno)
try:
# Enter raw mode on the local tty.
tty.setraw(stdin_fileno)
raw_ta = tty.tcgetattr(stdin_fileno)
raw_ta[tty.LFLAG] |= tty.ISIG
raw_ta[tty.OFLAG] |= tty.OPOST | tty.ONLCR
# Pass ^C through so we can abort traceroute, etc.
raw_ta[tty.CC][tty.VINTR] = '\x18' # ^X is the new ^C
# Ctrl-Z is used by a lot of vendors to exit config mode
raw_ta[tty.CC][tty.VSUSP] = 0 # disable ^Z
tty.tcsetattr(stdin_fileno, tty.TCSANOW, raw_ta)
# Execute our callable here
func()
finally:
# Restore original tty settings
tty.tcsetattr(stdin_fileno, tty.TCSANOW, old_ttyattr)
开发者ID:altoplano,项目名称:trigger,代码行数:33,代码来源:cli.py
示例4: _posix_shell
def _posix_shell(self, chan):
import select
oldtty = termios.tcgetattr(sys.stdin)
try:
tty.setraw(sys.stdin.fileno())
tty.setcbreak(sys.stdin.fileno())
chan.settimeout(0.0)
# needs to be sent to give vim correct size FIX
chan.send('eval $(resize)\n')
while True:
r, w, e = select.select([chan, sys.stdin], [], [])
if chan in r:
try:
x = chan.recv(1024)
if len(x) == 0:
print '\r\n*** EOF\r\n',
break
sys.stdout.write(x)
sys.stdout.flush()
except socket.timeout:
pass
if sys.stdin in r:
# fixes up arrow problem
x = os.read(sys.stdin.fileno(), 1)
if len(x) == 0:
break
chan.send(x)
finally:
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)
开发者ID:fauziharoon,项目名称:metapathways2,代码行数:32,代码来源:__init__.py
示例5: getch
def getch():
"Returns a single character"
if getch.platform is None:
try:
# Window's python?
import msvcrt
getch.platform = 'windows'
except ImportError:
# Fallback...
try:
import tty, termios
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
getch.platform = 'unix'
except termios.error:
getch.platform = 'dumb'
if getch.platform == 'windows':
import msvcrt
return msvcrt.getch()
elif getch.platform == 'unix':
import tty, termios
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
return ch
else:
return sys.stdin.read(1).strip().lower()
开发者ID:docwhat,项目名称:homedir,代码行数:32,代码来源:setup.py
示例6: interactive
def interactive(self, prompt = pwn.text.boldred('$') + ' '):
'''Turns the channel into an interactive session (that is, it connects stdin and stdout to the channel).'''
import sys, tty, termios, select
if not self._tty:
basechatter.interactive(self, prompt)
return
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
tty.setraw(fd)
try:
while True:
reads, _, _ = select.select([sys.stdin.fileno(), self._channel.fileno()], [], [], 0.05)
while self._channel.recv_ready():
dat = self.recv()
sys.stdout.write(dat)
sys.stdout.flush()
if self._channel.exit_status_ready():
if not self._channel.recv_ready():
break
elif sys.stdin.fileno() in reads:
dat = sys.stdin.read(1)
# Break if ctrl+] is hit
if dat == '\x1d':
sys.stdout.write('\r\n')
sys.stdout.flush()
break
self.send(dat)
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
开发者ID:7h3rAm,项目名称:pwntools,代码行数:35,代码来源:ssh.py
示例7: getch
def getch():
"""getch() for Windows and Linux.
This won't work unless run from a terminal.
"""
# this must be executed from a terminal
if not is_executed_from_console():
system_exit("libastyle.getch() must be run from the console")
# WINDOWS uses msvcrt
if os.name == "nt":
# clear buffer
while msvcrt.kbhit():
msvcrt.getch()
# read char
ch_in = msvcrt.getch()
# LINUX uses termios and tty
else:
# clear buffer
sys.stdin.flush()
# read char
fd_in = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd_in)
try:
tty.setraw(sys.stdin.fileno())
ch_in = sys.stdin.read(1)
if ch_in == '\x1b': # alt key (27)
ch_in = sys.stdin.read(1)
finally:
termios.tcsetattr(fd_in, termios.TCSADRAIN, old_settings)
# convert to unicode for Python 3
return ch_in.decode('utf-8')
开发者ID:amremam2004,项目名称:astyle,代码行数:30,代码来源:libastyle.py
示例8: myinput
def myinput(timeout=0):
ESCSEQ = b'\x1b['
tty.setraw(stdin.fileno())
#stdout = os.fdopen(stdin.fileno(), 'wb', 0)
special = False
while True:
rlist, wlist, xlist = select([stdin], [], [], 0)
ch = os.read(stdin.fileno(), 1)
ch = ch.decode()
if ch == '\x1b':
if special:
yield ESC
else:
special = True
elif ch == '[':
if not special:
yield ch
else:
if special:
special = False
if ch == 'A': yield UP
elif ch == 'B': yield DOWN
elif ch == 'C': yield RIGHT
elif ch == 'D': yield LEFT
else:
yield ch
开发者ID:kopchik,项目名称:perforator,代码行数:26,代码来源:inpt_test.py
示例9: geolocation
def geolocation():
sys.stdout.write('\x1b[?99n')
sys.stdout.flush()
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
try:
tty.setraw(sys.stdin.fileno())
rv = sys.stdin.read(1)
if rv != '\x1b':
raise
rv = sys.stdin.read(1)
if rv != '[':
raise
rv = sys.stdin.read(1)
if rv != '?':
raise
loc = ''
while rv != 'R':
rv = sys.stdin.read(1)
if rv != 'R':
loc += rv
except Exception:
return
finally:
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
if not loc or ';' not in loc:
return
return tuple(map(float, loc.split(';')))
开发者ID:paradoxxxzero,项目名称:butterfly,代码行数:30,代码来源:escapes.py
示例10: interactive_shell
def interactive_shell(self, chan):
sys.stdout.flush()
try:
signal.signal(signal.SIGHUP, self._session.kill_session)
oldtty = termios.tcgetattr(sys.stdin)
tty.setraw(sys.stdin.fileno())
tty.setcbreak(sys.stdin.fileno())
chan.settimeout(0.0)
while True:
r, w, e = select.select([chan, sys.stdin], [], [])
if chan in r:
try:
x = chan.recv(1024)
if len(x) == 0:
break
sys.stdout.write(x)
sys.stdout.flush()
except socket.timeout:
break
if sys.stdin in r:
x = os.read(sys.stdin.fileno(), 1)
if len(x) == 0:
break
chan.send(x)
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)
except Exception as e:
logger.error(e.message)
raise e
开发者ID:bewie,项目名称:BlackHole,代码行数:28,代码来源:client.py
示例11: spawn
def spawn(self, argv=None):
'''
Create a spawned process.
Based on the code for pty.spawn().
'''
assert self.master_fd is None
if not argv:
argv = [os.environ['SHELL']]
pid, master_fd = pty.fork()
self.master_fd = master_fd
if pid == pty.CHILD:
os.execlp(argv[0], *argv)
old_handler = signal.signal(signal.SIGWINCH, self._signal_winch)
try:
mode = tty.tcgetattr(pty.STDIN_FILENO)
tty.setraw(pty.STDIN_FILENO)
restore = 1
except tty.error: # This is the same as termios.error
restore = 0
self._init_fd()
try:
self._copy()
except (IOError, OSError):
if restore:
tty.tcsetattr(pty.STDIN_FILENO, tty.TCSAFLUSH, mode)
os.close(master_fd)
self.master_fd = None
signal.signal(signal.SIGWINCH, old_handler)
self._set_pty_size()
开发者ID:mpobrien,项目名称:teaminal,代码行数:32,代码来源:ptyintercept.py
示例12: interact
def interact(self):
os.write(self.fd, self.readbuffer)
old = termios.tcgetattr(self.fd)
new = termios.tcgetattr(self.fd)
new[3] = new[3] & ~termios.ECHO
try:
tty.setraw(self.fd)
while True:
try:
rd, wd, ed = select.select([self.ptyfd, self.fd], [], [])
except select.error as e:
if e.args[0] == 4:
continue
else:
raise
for i in rd:
if i == self.ptyfd:
s = os.read(i, 1024)
os.write(self.fd, s)
elif i == self.fd:
s = os.read(i, 1024)
os.write(self.ptyfd, s)
except OSError as e:
if e.errno == 5:
# 使用 print() 会导致下一个 Python 提示符位置不对
os.write(self.fd, '已结束。\r\n'.encode())
else:
raise
finally:
termios.tcsetattr(self.fd, termios.TCSADRAIN, old)
开发者ID:JaHIY,项目名称:winterpy,代码行数:30,代码来源:expect3.py
示例13: Connect
def Connect(self):
self.file = open_rfcomm(self.port, os.O_RDWR)
tty.setraw(self.file)
attrs = termios.tcgetattr(self.file)
attrs[0] &= ~(termios.IGNCR | termios.ICRNL | termios.IUCLC | termios.INPCK | termios.IXON | termios.IXANY |
termios.IGNPAR)
attrs[1] &= ~(termios.OPOST | termios.OLCUC | termios.OCRNL | termios.ONLCR | termios.ONLRET)
attrs[3] &= ~(termios.ICANON | getattr(termios, 'XCASE', 4) | termios.ECHO | termios.ECHOE | termios.ECHONL)
attrs[3] &= ~(termios.ECHO | termios.ECHOE)
attrs[6][termios.VMIN] = 1
attrs[6][termios.VTIME] = 0
attrs[6][termios.VEOF] = 1
attrs[2] &= ~(termios.CBAUD | termios.CSIZE | termios.CSTOPB | termios.CLOCAL | termios.PARENB)
attrs[2] |= (termios.B9600 | termios.CS8 | termios.CREAD | termios.PARENB)
termios.tcsetattr(self.file, termios.TCSANOW, attrs)
termios.tcflush(self.file, termios.TCIOFLUSH)
self.send_commands()
开发者ID:cschramm,项目名称:blueman,代码行数:25,代码来源:PPPConnection.py
示例14: Init
def Init():
global stdout_fd
global stdin_fd
stdout_fd = os.fdopen(sys.stdout.fileno(), 'w', 0)
stdin_fd = os.fdopen(sys.stdin.fileno(), 'r', 0)
tty.setraw(stdin_fd)
开发者ID:AndiDog,项目名称:iTerm2,代码行数:7,代码来源:escio.py
示例15: interactive_shell
def interactive_shell(chan):
"""stolen from paramiko examples"""
oldtty = termios.tcgetattr(sys.stdin)
try:
tty.setraw(sys.stdin.fileno())
tty.setcbreak(sys.stdin.fileno())
chan.settimeout(0.0)
while True:
r, w, e = select.select([chan, sys.stdin], [], [])
if chan in r:
try:
x = chan.recv(1024)
if len(x) == 0:
break
sys.stdout.write(x)
sys.stdout.flush()
except socket.timeout:
pass
if sys.stdin in r:
x = sys.stdin.read(1)
if len(x) == 0:
break
chan.send(x)
finally:
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)
开发者ID:lheiskan,项目名称:poni,代码行数:27,代码来源:rcontrol_paramiko.py
示例16: initRobot
def initRobot(args):
serial = None
port = args.serialport
try:
serial = open( port, 'r+' )
except IOError:
print "robot not connected?"
exit(1)
tty.setraw(serial);
if args.home:
serial.write("c")
readResponse(args,serial,0)
#speed and pwm
serial.write("p%d,%d" % (args.speed, args.pwm ))
readResponse(args,serial)
#ms
serial.write("i%d,%d" % (MS0, MS1 ))
readResponse(args,serial)
#where are we
serial.write("q")
readResponse(args,serial)
return serial
开发者ID:gnublade,项目名称:cursivedata,代码行数:25,代码来源:feed.py
示例17: getKey
def getKey():
'''get key press (from example code)'''
tty.setraw(sys.stdin.fileno())
select.select([sys.stdin], [], [], 0)
key = sys.stdin.read(1)
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, settings)
return key
开发者ID:rdiverdi,项目名称:comprobo15,代码行数:7,代码来源:teleop2.py
示例18: getch
def getch():
sys.stdout.flush()
fd = sys.stdin.fileno()
old_settings = termios.tcgetattr(fd)
tty.setraw(sys.stdin.fileno())
ch = sys.stdin.read(1)
termios.tcsetattr(fd, termios.TCSANOW, old_settings)
开发者ID:pkarasev3,项目名称:boost-python-examples,代码行数:7,代码来源:demo.py
示例19: drawMap
def drawMap(x, y, wallNorth, wallSouth, wallEast, wallWest, tries, compassRemaining, pokedSpots, monsterPos):
termios.tcsetattr(sys.stdin.fileno(), termios.TCSANOW, origSettings)
sys.stdout.flush()
if os.name == 'nt':
os.system('cls')
else:
os.system('clear')
sys.stdout.write('WELCOME TO THE BOX! (h = help)\n\n')
sys.stdout.write(('=' * (wallEast - wallWest + 2)) + '\n')
for mapY in range(wallNorth - wallSouth, -1, -1):
if False and mapY != y:
# Quick path, we are not on this line.
sys.stdout.write('|' + (' ' * (wallEast - wallWest)) + '|\n')
else:
sys.stdout.write('|')
for mapX in range(wallEast - wallWest):
# Monster on top, then you, then poked spots, then blank spot
if [mapX, mapY] == monsterPos:
sys.stdout.write('@')
elif mapX == x and mapY == y:
sys.stdout.write('*')
elif (mapX, mapY) in pokedSpots:
sys.stdout.write('X')
else:
sys.stdout.write(' ')
sys.stdout.write('|\n')
sys.stdout.write(('=' * (wallEast - wallWest + 2)) + '\n')
sys.stdout.write('Pokes(p): %d\tCompass(c): %d\nPos: (%d, %d)\n%s\n\n' %(tries, compassRemaining, x, y, '-' * 20))
sys.stdout.write('\n\n%s\n' %(lastMsg,))
sys.stdout.flush()
tty.setraw(sys.stdin)
开发者ID:linearregression,项目名称:python-nonblock,代码行数:33,代码来源:simpleGame.py
示例20: posix_shell
def posix_shell(chan):
import select
oldtty = termios.tcgetattr(sys.stdin)
try:
tty.setraw(sys.stdin.fileno())
tty.setcbreak(sys.stdin.fileno())
chan.settimeout(0.0)
while True:
r, w, e = select.select([chan, sys.stdin], [], [])
if chan in r:
try:
x = u(chan.recv(1024))
if len(x) == 0:
sys.stdout.write('\r\n*** EOF\r\n')
break
sys.stdout.write(x)
sys.stdout.flush()
except socket.timeout:
pass
if sys.stdin in r:
x = sys.stdin.read(1)
if len(x) == 0:
break
chan.send(x)
finally:
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, oldtty)
开发者ID:huyuedong,项目名称:s14,代码行数:29,代码来源:interactive.py
注:本文中的tty.setraw函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论