在Python中在线获取输出制表符

在Python中在线获取输出制表符,python,tabs,ubuntu-12.04,Python,Tabs,Ubuntu 12.04,我有一个Python程序,可以在Ubuntu中创建一个指示符通知。如何计算需要添加多少选项卡以确保输出始终垂直对齐 我试着计算使用的字符数并插入空格而不是制表符,但这不起作用,因为使用了非单色字体 此图片中显示的输出: 输出行的代码: for processName in processStatuses: if processName in cachedProcessStatuses: if processStatuses[processName] != cachedP

我有一个Python程序,可以在Ubuntu中创建一个指示符通知。如何计算需要添加多少选项卡以确保输出始终垂直对齐

我试着计算使用的字符数并插入空格而不是制表符,但这不起作用,因为使用了非单色字体

此图片中显示的输出:

输出行的代码:

for processName in processStatuses:
    if processName in cachedProcessStatuses:
        if processStatuses[processName] != cachedProcessStatuses[processName]:
            output += processName
            output += " : \t"
            output += processStatuses[processName]
            output += "\n"
    else:
        output += processName
        output += " : \t"
        output += processStatuses[processName]
        output += "\n"
…作为非单色字体使用

在这种情况下,您需要了解字体几何图形(这不是一项简单的任务)


字符串“iiii”占用的空间小于“MMMM”,但如果不知道字体几何结构(单个字符的确切宽度以及它们的相对水平位置),则无法知道,特定字符串是否比tabwidth宽。

即使如此,也可能没有正确的整数计数来对齐文本,这可能是您所能得到的最好结果,这只是一个最好的猜测,因为这不是使用tkinter来进行实际显示。只是想知道强制第一列为某个宽度(字符宽度)是否有意义/有效<代码>'{:50}:{}'.format('a','b')或者,因为OP说他是针对Ubuntu的,他可以尝试通过基于终端/操作系统的格式化实用程序,通过子进程或其他方式,推送Python的输出,因为这可能已经知道显示界面的字体设置和间距。也许有人知道如何让python将指示符字体改为单字体?例如,在我调用pynotify.Notification(标题、文本)的附近