如何获取数据文件,读取数据并将输出作为python中的表

时间:2019-05-01 21:22:35

标签: python

我遇到了python编码问题,必须使用一个数据文件,编写程序以读取文件,以某种方式操纵读取的数据,并生成输出报告。该报告必须是带有列的表,我无法弄清楚如何创建列。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

假设您要打印列表

L = [['name', 'age', 'birth date'],
     ['john', '45', '29/01/1974'],
     ['steve', '17', '13/03/2002'],
     ['paul', '13', '22/05/2006']]

以表格格式。第一步是定义表中的行数和列数,并保存到变量中,因为这样做可以帮助您。

打印表格

使用for循环,您可以像打印表格一样打印所有信息。

for i in L:
    print(*i, sep='|', end='')
    print()

定义每列的宽度

之后,您可以定义一个列表width,每列每个元素的长度值。

也就是说,如果您输入类似

的列表
[['name', 'age', 'birth date'],
 ['john', '45', '29/01/1974'],
 ['steve', '17', '13/03/2002'],
 ['paul', '13', '22/05/2006']]

它应该返回[5, 3, 10]

请注意,在第一列中最长的字符串是'steve' 5 个字符),第二列是'age' 3 个字符) ,第三列的所有字符串都具有相同的长度( 10 个字符)。

定义垂直边距(可选)

创建表格并将其打印在屏幕上之后,您可能会遇到以下问题:

name|age|birth date
john|45|29/01/1974
steve|17|13/03/2002
paul|13|22/05/2006

要解决此问题,您可以将内置方法(例如center应用于列表中的每个字符串。 width列表将对此有所帮助,因为可以通过列表width的每个元素定义方法的每个参数的大小。

定义一条水平线(可选)

出于美学原因,您可能需要用水平线分隔线,如下所示:

---------+-------+--------------
   name  |  age  |  birth date  
---------+-------+--------------
   john  |   45  |  29/01/1974  
---------+-------+--------------
  steve  |   17  |  13/03/2002  
---------+-------+--------------
   paul  |   13  |  22/05/2006  
---------+-------+--------------

同样,width列表会帮助您。请注意,在水平线上,+的数量将始终小于行数,而-的数量将始终是由列表{定义的每一列的大小{1}}。