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
之间的不同行中存在如此不规则的间距答案 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()
,您可以在给定的空白宽度内左右对齐文本。