连接\ t python会产生不规则的间距

时间:2014-09-05 08:47:49

标签: python

w.write(str(entries[0]) + "\t" + (str(entries[1])) + "\n")

这使输出为

Zygophyseter    1
Zygorhiza       1
Zygospore       1
Zygote_(band)   1
Zygote_intrafallopian_transfer  1
Zygotes 1
Zygovisti       1

为什么名称和数字1

之间的不同行中存在如此不规则的间距

1 个答案:

答案 0 :(得分:4)

您误解了意为的标签。制表符表示:从当前位置移动到下一个制表位。

这些制表位的位置取决于您的文本编辑器或终端。通常它们位于每第8列,Stack Overflow将这些选项标记为第四列列:

>>> def show_tabs():
...     print('\t'.join(['v'] * 8))
...     for i in range(1, 33):
...         print(''.join(map(lambda j: str(j)[-1], range(1, i))), 'tab to here', sep='\t')
... 
>>> show_tabs()
v   v   v   v   v   v   v   v
    tab to here
1   tab to here
12  tab to here
123 tab to here
1234    tab to here
12345   tab to here
123456  tab to here
1234567 tab to here
12345678    tab to here
123456789   tab to here
1234567890  tab to here
12345678901 tab to here
123456789012    tab to here
1234567890123   tab to here
12345678901234  tab to here
123456789012345 tab to here
1234567890123456    tab to here
12345678901234567   tab to here
123456789012345678  tab to here
1234567890123456789 tab to here
12345678901234567890    tab to here
123456789012345678901   tab to here
1234567890123456789012  tab to here
12345678901234567890123 tab to here
123456789012345678901234    tab to here
1234567890123456789012345   tab to here
12345678901234567890123456  tab to here
123456789012345678901234567 tab to here
1234567890123456789012345678    tab to here
12345678901234567890123456789   tab to here
123456789012345678901234567890  tab to here
1234567890123456789012345678901 tab to here

在您自己的终端中运行上述代码将快速显示您的标签设置。

在您的文字中,您有一行短于8个字符的行,因此下一个制表位从一开始就是8个字符。一行超过16个字符,因此下一个制表位为24个字符。大多数行包含9到14个字符,因此下一个制表位为16个字符。换句话说,使用列之间的制表符,输出完全一致

如果要生成包含完美对齐列的文本输出,请调整选项卡以适合特定的制表符停止配置(根据第一列的长度使用更多或更少的选项卡),或仅使用空格,以及再次调整间距。 Python可以帮助后者,请参阅formatting with str.format(),您可以在给定的空白宽度内左右对齐文本。