1

我想在控制台中打印带有诅咒的多列数据。有什么简单的方法可以做到这一点?

目前,我的应用程序打印如下信息:

import curses
(...)
# create default screen
std_scr = curses.initscr()
(...)
# example
for line in lines:
    std_scr.addstr(line + "\n")
std_scr.refresh()

这导致以下输出

line 1
line 2
...
line n

但是,我想要的是这样的:

columns = 3
for line in lines:
   # easy way to separate columns

这应该导致:

line 1         | line 11          | line 21
line 2         | line 12          | line 22
...            | ...              | ...
line 10        | line 20          | line 30

有什么简单的方法可以实现这一目标?我是否应该简单地使用迭代器以line 1, line 11, line 21, line 2, line 12, line 22,等顺序进行迭代line 3,同时使用line.ljust(30, " ")来获取空格?

或者我应该在 curses 中创建多个屏幕?

是否存在其他甚至更简单的解决方案?

我对诅咒很陌生,因此任何一般性建议+示例都会很棒。

4

1 回答 1

0

我将使用 获取屏幕尺寸std_scr.getmaxyx,并将屏幕宽度除以列数。此外,从迭代器的限制中获取每列中的行数。用于打印消息(并根据示例中的列数和行数addnstr计算每次调用的 y,x 坐标对)。addnstr

于 2016-11-18T23:37:25.150 回答