在没有导入操作系统的情况下,是否有一个优雅的解决方案可以在Python中执行此shell脚本?
tput cup 14 15; echo -ne "\033[1;32mtest\033[0m" ; tput cup 50 0
这已经在我脑海中啃了一段时间了:))
由于
答案 0 :(得分:5)
感谢Ignacio Vazquez-Abrams的投入,这是一个很好的推动正确的方向。 最后,我想出了一些可以帮助我征服世界的小代码:)
from curses import *
setupterm()
#cols = tigetnum("cols")
#lines = tigetnum("lines")
#print str(cols) + "x" + str(lines)
place_begin = tparm(tigetstr("cup"), 15, 14)
place_end = tparm(tigetstr("cup"), 50, 0)
print place_begin + "-- some text --" + place_end
@ TZ.TZIOY,谢谢,我认为使用stdout而不是使用print确实是一个更好的解决方案。
答案 1 :(得分:3)
所有terminfo功能都可以通过curses
访问。初始化它并使用curses.tiget*()
来获得您关心的功能。
答案 2 :(得分:3)
鉴于此
tput cup 14 15 | cat -v
显示^[[15;16H
整个建议的脚本会产生以下Python脚本:
import sys
sys.stdout.write("\033[15;16H\033[1;32mtest\033[m\033[51;1H")
# and a possible sys.stdout.flush() here, depending on your needs