如何在Python的文件输出中插入标签?
例如,
print >>outPutFile , c.lstrip()+"\t"+d.rstrip('\n')+"\t"+a+"\t"+b
输出:
cfn79e739_1.lp 260175 79 739
cfn100e1217_1.lp 288734 100 1217
第二行在288734之后没有标签。为什么?
第一行在cfn79e739_1.lp和260175之后没有标签。为什么?
我需要使每个列处于相同的对齐位置。
答案 0 :(得分:3)
计算每列的最大宽度,然后相应地填充每个值:
lines = [
['cfn79e739_1.lp', '260175', '79', '739'],
['cfn100e1217_1.lp', '285768', '100', '1217'],
['cfn200e11660_1.lp', '288734', '200', '11660'],
['cfn1500e145_1.lp', '218435', '1500', '145'],
]
def print_columns(lines, spacing=2):
widths = [max(len(value) for value in column) + spacing
for column in zip(*lines)]
for line in lines:
print(''.join('%-*s' % item for item in zip(widths, line)))
print_columns(lines)
输出:
cfn79e739_1.lp 260175 79 739
cfn100e1217_1.lp 285768 100 1217
cfn200e11660_1.lp 288734 200 11660
cfn1500e145_1.lp 218435 1500 145
答案 1 :(得分:2)
是的。但这不是标签的工作方式。他们将光标移动到下一列,即8的倍数。如果您想要完全表格对齐,那么您应该使用字符串插值或使用已知大小的格式。
>>> print '%-20s %-4d' % ('foo', 42)
foo 42
>>> print '%-20s %-4d' % ('bar', 13)
bar 13