无法制表从文件中读取的数据
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 |
+----------+---------+
我在 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 |
+----------+---------+