我正在尝试编写一个打印出输入文件的函数:" table.txt"如左图所示:
进入图像右侧所见的格式。
我试过了:
*.**.nic...
哪个输出:
f = open("table1.txt",'r')
for aline in f:
values = aline.split(',')
print('Team:',values[0],', Points:',values[1],', Diff:',int(values[2])-int(values[3]),'Goals:',values[2])
f.close()
但是如何打印值以便行编号并且列具有标题:"团队,点数,差异,目标"?
答案 0 :(得分:3)
您从上面的代码获得了什么输出?你会把它贴在这里吗?
如果要获得每行中重复列标题的输出,则必须在for循环上方打印Table标题,然后将其从内部打印 for 循环中删除。
f = open("table1.txt",'r')
print('Team \t Points \t Diff \t Goals')
a=1;
for aline in f:
values = aline.split(',')
print(a, values[0], values[1], int(values[2])-int(values[3]), values[2])
a++;
f.close()
这对你有帮助..
答案 1 :(得分:1)
我不确定这是否正是您所需要的,但我认为您想要的格式可能是这样的:
contents = []
with open('tables.dat', 'r+') as f:
for line in f:
contents.append(line.split(','))
max_name_length = max([len(line[0]) for line in contents])
print(" Team Points Diff Goals \n")
print("--------------------------------------------------------------------------\n")
for i, line in enumerate(contents):
line = [el.replace('\n', '') for el in line]
print("{i:>3} {0:<{fill_width}} {1:>3} {2:>3} {3:>3}".format(i=i, *line, fill_width=max_name_length))
以下是一些示例输出:
Team Points Diff Goals
--------------------------------------------------------------------------
0 FC Ingolstadt 04 13 -2 4
1 Hamburg 9 -2 8
2 SV Darmstadt 98 9 -1 8
3 Mainz 9 -3 6
4 FC Augsburg 4 -5 7
5 Werder Bremen 6 -5 7
6 Borussia Moenchengladbach 6 -6 9
7 Hoffenheim 5 -4 8
8 VfB Stuttgart 4 -8 9
9 Schalke 04 16 11 14
10 Hannover 96 2 -12 6
11 Borrusia Dortmund 16 11 15
12 Bayern Munich 18 16 18
13 Bayer Leverkusen 14 3 11
14 Eintracht Frankfurt 9 4 13
15 Hertha BSC Berlin 14 1 5
16 1. FC Cologne 13 0 10
17 VfB Wolfsburg 14 4 10
编辑1:更新后的问题信息
编辑2:不需要目标的填充宽度规范(这是最后一个)
编辑3:以点,差异和目标值为中心。注意:我是通过实验手动完成的。如果值的长度超过2位,你将不得不做一些max_name_length
类的事情。
编辑4:在看到样本输出的样子后更新。