无法制表从文件中读取的数据

Unable to tabulate data read in from file

我在 fruitveggielist.py 中的代码应该读取文件并打印到 table。我正在使用 tabulate

fruit.txt

corn, apple
lettuce, grapes
pepper, melon

但是应该显示在 table 和 headers veggie fruit

目前的代码:

from tabulate import tabulate
filepath = 'fruit.txt'
with open(filepath) as fp:
   line = fp.readline()

   while line:
           print tabulate("{}".format(line.strip()), headers=['Veggie', 'Fruit'])
           line = fp.readline()

打印-

Veggie
--------
c
o
r
n
,

a
p
p
l
e

等等……

我如何使用 tabulate 或其他 table 格式化程序将 fruit.txt 正确打印到 table?

好的,最简单的方法是将数据放入嵌套列表中。

正如您现在所做的那样,字符串被视为可迭代对象,因此每个字符都被视为一个单独的项目并为其分配自己的行。您最终还将 headers 放在读入的每一行数据上。

如前所述,解决此问题的最佳方法是将所有内容放入列表中并调用函数 一次。每对应该是一个单独的记录。

from tabulate import tabulate

data = []
with open('fruit.txt') as f:
     for line in f:
        data.append(list(map(str.strip, line.split(','))))

print(tabulate(data, tablefmt='grid', headers=('veggie', 'fruit')))

+----------+---------+
| veggie   | fruit   |
+==========+=========+
| corn     | apple   |
+----------+---------+
| lettuce  | grapes  |
+----------+---------+
| pepper   | melon   |
+----------+---------+