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

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  

由于每个内部列表中的第一个元素的长度变化,这些列的排列不整齐。我如何在第一元素和第二个元素之间编写适当数量的空格,以使第二列阵容以达到人类的可读性?

有帮助吗?

解决方案

您需要格式字符串:

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

%-15s 左路为字符串的15个空间字段合理。这是输出:

seq1            ACTAGACCCTAG
sequence287653  ACTAGNACTGGG
s9              ACTAGAAACTAG

其他提示

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) )

对我来说比循环表达更清晰

"%10s" % obj 将在右侧对齐的OBJ的字符串表示情况下确保至少10个空间。

"%-10s" % obj 这样做一样,但向左对齐。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top