Formatting 在Biopython:你能‘;打印’;因此,长输出将被格式化为多行,每行具有最大字符长度,这在FASTA格式中经常可以看到?
我一直试图从genbank文件中获取信息,并使用下面我修改的xbello代码打印出轨迹标记和翻译Formatting 在Biopython:你能‘;打印’;因此,长输出将被格式化为多行,每行具有最大字符长度,这在FASTA格式中经常可以看到?,formatting,biopython,Formatting,Biopython,我一直试图从genbank文件中获取信息,并使用下面我修改的xbello代码打印出轨迹标记和翻译 from Bio import SeqIO for rec in SeqIO.parse("file.gb", "genbank"): if rec.features: for feature in rec.features: if feature.type == "CDS" and feature.qualifiers.has_key('transla
from Bio import SeqIO
for rec in SeqIO.parse("file.gb", "genbank"):
if rec.features:
for feature in rec.features:
if feature.type == "CDS" and feature.qualifiers.has_key('translation'):
print '>'+feature.qualifiers['locus_tag'][0]
print feature.qualifiers['translation'][0]
但它可以将每个翻译序列打印为非常长的行(我假设python允许的最大字符长度),
我想知道是否可以将其设置为一行大约60个字符的多行段落格式,这就是您经常在.faa文件中看到的
我试过print(textwrap.fill(feature.qualifiers['translation'],width=60))
和print(textwrap.wrap(feature.qualifiers['translation'],width=60))
到目前为止,这还不起作用,我已经试过了
X=feature.qualifiers['translation']
并进行打印(textwrap.fill(X,宽度=60))
但毫不奇怪,电脑不知道我要它做什么…
我不确定还有什么其他格式命令可以用于打印而不是Xout.write
,我有一种强烈的感觉,我写这篇文章时没有让计算机知道我希望它等待打印功能中的文本。限定符['translation']
,然后用宽度=60的文本换行
我使用cmd或powershell将此代码作为脚本运行,并使用“>X.xx”给出输出文件名和文件类型。您可以编写一个自定义打印函数,该函数获取一个字符串作为输入,并将该字符串拆分为60个字符的部分,然后打印这些部分
def custom_print(string):
counter=0
res=""
for char in string:
if counter==60:
print res
counter=0
res=""
continue
res+=char
counter+=1
非常感谢你!这是一个很好的想法,效果很好。答案是正确的,但实施效率很低。将字符串切片60次而不是创建一个新字符串更简单、更快。您可以使用
enumerate
删除计数器变量。的可能重复项