我有一个列表,看起来像这样:
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
由于每个内部列表中第一个元素的长度不同,列不能整齐排列。如何在第一个和第二个元素之间编写适当数量的空白以使第二列符合人类可读性?
答案 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
做同样的事,但左对齐。