在python中写下白空间划界文本是人类可读的
-
02-10-2019 - |
题
我有一个看起来像这样的列表:
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
这样做一样,但向左对齐。
不隶属于 StackOverflow