加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

python – 脚本全屏,curses风格,更新unixen上的表格输出(la top

发布时间:2021-01-12 09:29:17 所属栏目:Linux 来源:网络整理
导读:我在Linux中寻找某种类型的软件包/ API,它们可以在类似于top的列中显示输出. 例如,保持清洁并以给定的间隔将输出重写为全屏(我猜watch可能做得足够好.但我希望有一些API包装在它之上). 按列排序很容易.特别是如果我按列A排序,那么当下次重新打印所有内容时,

我在Linux中寻找某种类型的软件包/ API,它们可以在类似于top的列中显示输出.

例如,保持清洁并以给定的间隔将输出重写为全屏(我猜watch可能做得足够好.但我希望有一些API包装在它之上).

按列排序很容易.特别是如果我按列A排序,那么当下次重新打印所有内容时,它会记住每次刷新输出时按列A排序.

当然,理想情况下它也可以为我处理键盘输入.

总而言之,我正在寻找可以帮助我以“顶级”组织方式组织输出的软件包或API.

为了清楚起见:我显示的内容可能与系统统计信息完全无关.我喜欢top组织内容的方式.例如,我的输出内容可能是(并且它不断变化,这就是需要清理和重写的原因):

Time Col1 Col2
12 4 13
13 5 19
14 5 15

我可以按一个键说“A”然后按时间排序.如果我按下了一个键B,那么它会被Col1排序.如果我按一个键说C然后它按Col2等排序等.

当然,这个输出内容可以完全在内存中,以任何数据结构组织.

最佳答案 如果你想在shell中执行此操作,请注意printf将是一个快速而肮脏的起点 – 每隔几秒钟重新运行一个脚本,printf进行格式化,大致如下:

printf '%-20s %-20sn' 
  header1 header2 
  line1data1 line1data2 
  line2data1 line2data2 ...

…数据可能是在数组中构建的,也可能是从数组中提供的.只需在脚本中循环并发出适当的控制代码以清除每一行,因为您即将覆盖它(并在开头移动到窗口的顶部)是另一种合理的方法.

也就是说,这里正确的工具将是一个建立在curses之上的层.已经有许多更高级别的文本小部件集 – 但我不知道有任何直接支持表的东西.

如果你愿意写C,那么围绕curses的这个包装就是GAP.Browse.

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!