簡體   English   中英

如何在python中使用curses和pyfiglet

[英]How to use curses and pyfiglet in python

我想在顯示器上方放一個橫幅。 我在線程顯示中使用curses,如下所示:

Total Requests :      $
Successful Requests : $
Failed Requests :     $
Current Threads :     $

是否可以在總請求的頂部添加橫幅。 我嘗試使用pyfiglet但無法正常工作

def outputSpot():
        global threads,counter,rcounter,logfile
        curses.start_color()
        curses.use_default_colors()
        banner = Figlet(font='slant')
        print(banner.renderText('Log Replay'))

        for i in range(0, curses.COLORS):
                curses.init_pair(i + 1, i, -1)
        while True:
#               stdscr.addstr(5,10, "Traffic Replay",curses.color_pair(51))

                stdscr.addstr(6,0, "File Streaming:\t{0}".format(logfile),curses.color_pair(185))
                stdscr.addstr(7,0, "Total Requests:\t\t{0}".format(counter),curses.color_pair(124))
                stdscr.addstr(8,0, "Successful Requests:\t{0}".format(rcounter),curses.color_pair(76))
                stdscr.addstr(9,0, "Failed Requests:\t{0}".format(fcounter),curses.color_pair(161))
                stdscr.addstr(10,0, "Current Threads:\t{0}  ".format(len(threads)),curses.color_pair(124))
                stdscr.refresh()

歡迎使用Stack Overflow!

我猜測curses會接管控制台,而您將看不到通過print向控制台寫入的任何內容。

另一個問題推斷,您的代碼如下所示:

import curses
from pyfiglet import Figlet

stdscr = curses.initscr()

def outputSpot():
    global threads, counter, rcounter, logfile, stdscr

    curses.start_color()
    curses.use_default_colors()

    banner = Figlet(font="slant").renderText("Log Replay")

    for i in range(0, curses.COLORS):
        curses.init_pair(i + 1, i, -1)

    while True:
        # Iterate through the lines of the Figlet
        y = 0
        for line in banner.split("\n"):
            stdscr.addstr(y, 0, line)
            y += 1

        # You can also print the rest without repeating yourself so often ->

        # WARNING: Unless you can safely assume that the number of lines 
        # in your Figlet is 6 or less, I would leave the following line commented
        # y = 6
        for line, color in [
            ("File Streaming:\t{0}".format(logfile), curses.color_pair(185)),
            ("Total Requests:\t\t{0}".format(counter), curses.color_pair(124)),
            ("Successful Requests:\t{0}".format(rcounter), curses.color_pair(76)),
            ("Failed Requests:\t{0}".format(fcounter), curses.color_pair(161)),
            ("Current Threads:\t{0}".format(len(threads)), curses.color_pair(124)),
        ]:
            stdscr.addstr(y, 0, line, color)
            y += 1

        stdscr.refresh()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM