用tab制作一个python表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用tab制作一个python表相关的知识,希望对你有一定的参考价值。

我有一个关于Python 3.X的问题。我能用.format创建一个漂亮的“表”,但问题是我是否能够使用标签看起来与格式相似?

file = open("students.csv", "r")
students= []
for i in file:
    i= i.rstrip()
    i_sublist = i.split(",")
    students.append(i_sublist)


print("Content")
print("{0:15} {1:15} {2:15}".format("Name", "Surname", "Grade"))
print("{0:15} {1:15} {2:15}".format("-----", "-------", "---"))
for i in students:
    for j in i:
        print("{0:15}".format(j),"",end="")
    print()
file.close()
答案

虽然我没有完全理解你的任务是什么(特别是关于标签),但我会尝试展示一种不使用.format方法来构建类似表格的方法。假设学生列表如下:

students = [('Arc', 'Circle', 'A'), ('Numan', 'Tuman', 'B'), ('Zeta', 'Beta', 'D'),
            ('Raptor', 'Strange', 'A'), ('Crazy', 'Bear', 'C')]

Using other method

然后以下函数将打印相似的表:

def context(students):
    preamble = [("Name", "Surname", "Grade"), 
                 ("----", "-------", "-----")]
    message = preamble + students   # join two lists together
    print("Context")
    for line in message:
        print(*(elem.ljust(15) for elem in line))  # left justify each element in sublists

从文档:

S.ljust(width[, fillchar]) -> str 返回S左对齐长度为width的Unicode字符串。使用指定的fill字符(默认为空格)完成填充。

Your own tabulator

如果您的任务是实现自己的制表器,可以通过以这种方式提供辅助函数来完成:

def tabulator(text, min_field=15):
    tabs_to_append = min_field - len(text)  
    return_string = (text if (tabs_to_append <= 0) else text + " "*tabs_to_append)
    return return_string 

def context_tabulator(students):
    preamble = [("Name", "Surname", "Grade"), 
                 ("----", "-------", "-----")]
    message = preamble + students   # join two lists together
    print("Context")
    for line in message:
        print(*(tabulator(elem, 15) for elem in line))  

如果你将它作为context_tabulator(students)调用它将产生下表:

Context
Name            Surname         Grade          
----            -------         -----          
Arc             Circle          A              
Numan           Tuman           B              
Zeta            Beta            D              
Raptor          Strange         A     
Crazy           Bear            C   

应该注意的是,以上所有示例仅显示了一般概念,并且不验证或转换所提供的参数输入。尽管如此,我希望这会对你有所帮助。

以上是关于用tab制作一个python表的主要内容,如果未能解决你的问题,请参考以下文章

python 用于在终端中运行的sublime text 3的简单代码片段制作工具

Android:使用Tab检测单个片段viewpager

Android选项卡片段不调用OnCreateView从tab2切换到tab1

如何在终端中制作 Python 脚本“tab-complete”目录?

选项卡执行android中下一个片段中存在的代码

vc++2010设置和c#一样的代码段,vs2010 两下tab设置