我有多个看起来像这样的字符串
domain1 = "│ domain1 │ 192.168.1.193 │ HTTP 200 │"
domain2 = "│ domain2 │ 192.168.1.194 │ HTTP DOWN │"
domain3 = "│ domain3 │ 192.168.1.195 │ HTTP DOWN │"
domain4 = "│ domain3 │ 192.168.1.196 │ HTTP 200 │"
有什么简便的方法可以将诅咒中的HTTP DOWN
仅涂成红色?
这是完整的代码:
#!/usr/bin/env python3
import curses
import os
def draw_menu(stdscr):
global looped, pingstart
domains = [
"│ domain1.com │ 192.168.1.193 │ HTTP 200 │",
"│ domain2.com │ 192.168.1.194 │ HTTP DOWN │",
"│ domain3.com │ 192.168.1.195 │ HTTP DOWN │",
"│ domain3.com │ 192.168.1.196 │ HTTP 200 │"
]
stdscr.clear()
stdscr.refresh()
# Start colors in curses
curses.start_color()
curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK)
curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_WHITE)
curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK)
curses.init_pair(4, curses.COLOR_CYAN, curses.COLOR_BLACK)
curses.init_pair(5, curses.COLOR_BLUE, curses.COLOR_BLACK)
curses.init_pair(6, curses.COLOR_GREEN, curses.COLOR_BLACK)
curses.init_pair(7, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
curses.init_pair(8, curses.COLOR_YELLOW, curses.COLOR_BLACK)
while True:
stdscr.clear()
height, width = stdscr.getmaxyx()
c=0
for domain in domains:
stdscr.addstr(2+c, 0, domain)
c+=1
time.sleep(1)
stdscr.refresh()
def main():
curses.wrapper(draw_menu)
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
exit()
代码被简化了一点。它经过几个步骤来获得这些最终的字符串。
这可能是我编写过的最混乱的程序之一,并且可能以不同的方式构造它
我试图做这样的事情
domain1 = "│ domain1 │ 192.168.1.193 │ HTTP 200 │"
domain2 = "│ domain2 │ 192.168.1.194 │ \033[91mHTTP DOWN\033[0m │"
但是curses不支持这种颜色格式
有没有更简单的方法?