如何在Python中向文件的输出中插入制表符?
如何在Python中向文件的输出中插入选项卡 比如说,如何在Python中向文件的输出中插入制表符?,python,windows,Python,Windows,如何在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 cfn79e739_1.lp 260175 79 739 cfn100e1217_1.l
print >>outPutFile , c.lstrip()+"\t"+d.rstrip('\n')+"\t"+a+"\t"+b
输出:
cfn79e739_1.lp 260175 79 739
cfn100e1217_1.lp 288734 100 1217
cfn79e739_1.lp 260175 79 739
cfn100e1217_1.lp 285768 100 1217
cfn200e11660_1.lp 288734 200 11660
cfn1500e145_1.lp 218435 1500 145
第二行在288734之后没有制表符。为什么?
第一行在cfn79e739_1.lp和260175之后没有制表符。为什么?
我需要使每一列在同一条直线上 是的。但标签不是这样工作的。它们将光标移动到下一列,该列是8的倍数。如果您想要完全的表格对齐,那么您应该使用字符串插值或具有已知大小的格式
>>> print '%-20s %-4d' % ('foo', 42)
foo 42
>>> print '%-20s %-4d' % ('bar', 13)
bar 13
是的。但标签不是这样工作的。它们将光标移动到下一列,该列是8的倍数。如果您想要完全的表格对齐,那么您应该使用字符串插值或具有已知大小的格式
>>> print '%-20s %-4d' % ('foo', 42)
foo 42
>>> print '%-20s %-4d' % ('bar', 13)
bar 13
计算出每列的最大宽度,然后相应地填充每个值:
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 288734 100 1217
cfn79e739_1.lp 260175 79 739
cfn100e1217_1.lp 285768 100 1217
cfn200e11660_1.lp 288734 200 11660
cfn1500e145_1.lp 218435 1500 145
计算出每列的最大宽度,然后相应地填充每个值:
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 288734 100 1217
cfn79e739_1.lp 260175 79 739
cfn100e1217_1.lp 285768 100 1217
cfn200e11660_1.lp 288734 200 11660
cfn1500e145_1.lp 218435 1500 145
输出中有一个选项卡,所有内容都与第8列对齐。不相关的注意事项:1添加所有这些选项卡的Python方法是“\t”。加入[c.lstrip,d.rstrip…,…]。2您的d.rstrip'\n'可能会被简化,并变得比d.rstrip更强大,它也会去除空白。您的输出中有一个选项卡,所有内容都与第8列对齐。不相关的注释:1添加所有这些选项卡的Python方法是'\t'。加入[c.lstrip,d.rstrip…,…]。2您的d.rstrip'\n'可能会被简化,并变得比d.rstrip更强大,d.rstrip也会去除空白。没有下一票,但制表符并不总是以8的倍数将光标移动到下一栏。例如,您可以要求较少的寻呼机将制表符放在任意倍数;这句话至少应该是限定的。没有下一票,但制表符并不总是以8的倍数将光标移动到下一栏。例如,你可以要求少页导航将制表符放置在任意倍数;这句话至少应该是有条件的。事实上,表格并不能解决原来的问题。事实上,表格并不能解决原来的问题。