在Python中编写以空白分隔的文本是人类可读的

时间:2010-09-11 05:35:51

标签: python whitespace human-readable

我有一个列表,看起来像这样:

data = [['seq1', 'ACTAGACCCTAG'],
        ['sequence287653', 'ACTAGNACTGGG'],
        ['s9', 'ACTAGAAACTAG']]

我将信息写入这样的文件:

for i in data:
    for j in i:
        file.write('\t')
        file.write(j)
    file.write('\n')

输出如下:

seq1   ACTAGACCCTAG  
sequence287653   ACTAGNACTGGG  
s9   ACTAGAAACTAG  

由于每个内部列表中第一个元素的长度不同,列不能整齐排列。如何在第一个和第二个元素之间编写适当数量的空白以使第二列符合人类可读性?

3 个答案:

答案 0 :(得分:10)

您需要格式字符串:

for i,j in data:
    file.write('%-15s %s\n' % (i,j))

%-15s表示左对齐字符串的15空格字段。这是输出:

seq1            ACTAGACCCTAG
sequence287653  ACTAGNACTGGG
s9              ACTAGAAACTAG

答案 1 :(得分:1)

data = [['seq1', 'ACTAGACCCTAG'],
        ['sequence287653', 'ACTAGNACTGGG'],
        ['s9', 'ACTAGAAACTAG']]
with open('myfile.txt', 'w') as file:
    file.write('\n'.join('%-15s %s' % (i,j) for i,j in data) )
对我而言,

比使用循环

的表达更清晰

答案 2 :(得分:0)

"%10s" % obj将确保最少10个空格,并在右侧对齐obj的字符串表示。

"%-10s" % obj做同样的事,但左对齐。