2

所以基本上我必须导入一个预设的 .txt 文件,除了代码中的预设标头与 .txt 文件数据不正确对齐的一件小事外,一切正常。

import csv
from tabulate import tabulate as tb



F = input("Enter the name of the file that you would like to import:")
fields = list(csv.reader(open(F + '.txt', 'r'), delimiter=';'))
print(tb(fields, headers=['Company', 'Registration number.', 'Date', 'Adress', 'Telephone Number']))

代码打印出这个。

          Company  Registration number.    Date                                Adress  Telephone Number
------  ---------  ----------------------  -----------------------------  -----------  ------------------
Valve    60006672  03.13.2003.             Brown street, Athens, Greece.  14223157963
Google   50003495  10.24.2001.             Lenin street, Moscow, Russia.  53221745750
Apple    20000196  03.31.2008.             Second street, New York, USA.  55327537161


.txt 文件中的信息:

阀门; 60006672;03.13.2003.;布朗街,雅典,希腊..;14223157963; 谷歌;50003495;10.24.2001.;列宁街,莫斯科,俄罗斯。;53221745750; 苹果;20000196;03.31.2008.;美国纽约第二街;55327537161;

4

1 回答 1

2

问题:表格输出与标题不正确对齐?

每行中的最后;一个导致一个多列。

Valve; 60006672;03.13.2003.;Brown street, Athens, Greece..;14223157963; 

因此你的计数headers=少了一个

解决方案

从每一行中删除最后';'一个或附加一个空''headers=

tb(fields, 
   headers=['Company', 'Registration\nNumber', 'Date',
            'Adress', 'Telephone\nNumber', '']
  )

输出

Company  Registration  Date         Adress                            Telephone
               Number                                                    Number
--------- -----------  -----------  ------------------------------  -----------  --
Valve        60006672  03.13.2003.  Brown street, Athens, Greece..  14223157963
Google       50003495  10.24.2001.  Lenin street, Moscow, Russia.   53221745750
Apple        20000196  03.31.2008.  Second street, New York, USA.   55327537161
于 2019-11-19T09:10:05.877 回答