无法将从文件中读入的数据制成表格

时间:2018-01-21 04:04:12

标签: python file tabular

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

fruit.txt

corn, apple
lettuce, grapes
pepper, melon

但是,应在带有标题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

等,等...

我如何使用制表符或其他表格式来正确地将fruit.txt打印到表格中?

1 个答案:

答案 0 :(得分:1)

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

正如您现在所做的那样,字符串被视为可迭代,因此每个字符都被视为一个单独的项目,并赋予其自己的行。您最终还会在读入的每行数据上放置标题。

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

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   |
+----------+---------+