python termios模式,如'htop,stop'实用程序

时间:2012-08-06 21:46:08

标签: python terminal

如果可以通过它对每个单元进行操作,如何在模式下使用终端窗口?我不知道这个模式是如何命名的,这就是为什么我不能谷歌它。另外,我知道this approach,但现在对我来说如何处理它的低级别很有意思。

UPD: 好的,我读了所有的termios手册和其他一些文档,我现在唯一可以说的了 - 我还是不知道如何在终端的某个地方制作旋转条,即框架: - \ | / - 。:(

UPD2 哦,我突然发现它there

import sys
import time

f='-\\|/'

for i in range(10):
    sys.stdout.write("\r{0}".format(f[i%4]))
    sys.stdout.flush()
    time.sleep(0.5)

那么,本主题的最后一个问题 - 只有termios的坐标呢?

Subquestion [解决]:

当我使用curses,即来自this post的第二个代码列表时 - 当top不执行此操作时,它会使我的半透明终端窗口不透明。如何保持透明?

解决方案:在curses.use_default_colors()的第一个字符串中插入def pbar(window):

2 个答案:

答案 0 :(得分:1)

curses(http://docs.python.org/library/curses.html)或控制台(http://effbot.org/zone/console-handbook.htm)模块是您想要的

Console.py的来源可以在这里http://www.math.uiuc.edu/~gfrancis/illimath/windows/aszgard_mini/pylibs/readline/Console.py我确定你可以看一下......虽然我确定它可能是一个巨大的痛苦,这就是为什么人们总是使用诅咒......

在Windows上,您可能想要浏览msdn http://msdn.microsoft.com/en-us/library/system.console.aspx 并使用ctypes.cdll.whatever

调用它

答案 1 :(得分:0)

如果你想要一个比curses更低级别的库,你可以使用termios(虽然我怀疑htop的UI主要是用curses编写的)

termios上的Python文档页面是最小的,因为该模块几乎只公开了底层的UNIX'y termios库,因此非Python特定的文档是主要的信息来源,like this guide on termios,或the termios.h header(或在shell中运行man termios

当然,挑战在于将代码转换为Python,但通常转换是相当直接的(函数调用通常非常相似,并且位调和/位屏蔽通常是相同的)