首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中编写人类可读的空格分隔文本

在Python中编写人类可读的空格分隔文本
EN

Stack Overflow用户
提问于 2010-09-11 13:35:51
回答 3查看 9.8K关注 0票数 4

我有一个列表列表,如下所示:

代码语言:javascript
复制
data = [['seq1', 'ACTAGACCCTAG'],
        ['sequence287653', 'ACTAGNACTGGG'],
        ['s9', 'ACTAGAAACTAG']]

我将信息写入一个文件,如下所示:

代码语言:javascript
复制
for i in data:
    for j in i:
        file.write('\t')
        file.write(j)
    file.write('\n')

输出如下所示:

代码语言:javascript
复制
seq1   ACTAGACCCTAG  
sequence287653   ACTAGNACTGGG  
s9   ACTAGAAACTAG  

由于每个内部列表中第一个元素的长度不同,列的排列不整齐。如何在第一个和第二个元素之间写入适当数量的空格,以使第二列对齐以便于人类阅读?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-11 13:40:24

您需要一个格式字符串:

代码语言:javascript
复制
for i,j in data:
    file.write('%-15s %s\n' % (i,j))

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

代码语言:javascript
复制
seq1            ACTAGACCCTAG
sequence287653  ACTAGNACTGGG
s9              ACTAGAAACTAG
票数 10
EN

Stack Overflow用户

发布于 2010-09-11 14:35:28

代码语言:javascript
复制
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) )

对我来说甚至比使用循环的表达式更清晰

票数 1
EN

Stack Overflow用户

发布于 2010-09-11 13:46:21

"%10s" % obj将确保obj的字符串表示形式右对齐,至少有10个空格。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3689936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档