为了账号安全,请及时绑定邮箱和手机立即绑定

Jupyter Notebook io.字符串IO作为输出

Jupyter Notebook io.字符串IO作为输出

跃然一笑 2022-09-27 15:23:21
输入Blast_aa_mc = qblast("blastp","nr", aa_mc[2])Blast_aa_mc输出<_io.StringIO at 0x12a1a48>什么是_io。字符串?这是什么意思?我所期待的是某种字符串或数组。有没有更好的方法来做到这一点?
查看完整描述

2 回答

?
呼如林

TA贡献1798条经验 获得超3个赞

字符串IO是标准库中来自蟒蛇的io模块的类。从本质上讲,StringIO 对象的行为类似于 Python 文件对象,它不存储在磁盘上,而是保存在内存中。


让我们看一个简单的例子:


f = io.StringIO("Some initial\ntext data.")

如果将其打印出来,则会得到与您的结果类似的结果:


print(f)


>> <_io.StringIO object at 0x7f4530264a68>

如何处理这个问题?好吧,几乎任何你可以用文件对象做的事情,你可以用一个StringIO对象来做。例如,要获取 f 中所有行的列表:


    content = f.readlines()

    print(content)


    >> ['Some initial\n', 'text data.']

要获取包含所有内容的单个字符串,请执行以下操作:


print(''.join(content))


>> 'Some initial

text data.'

请注意,您只能调用一次读行 - 就像文件一样。对读行的第二次调用将返回一个空列表。


查看完整回答
反对 回复 2022-09-27
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

您可以解析通过模块返回的结果句柄,例如qblast()Bio.SearchIO


from Bio import SearchIO

from Bio.Blast import NCBIWWW


Blast_aa_mc = NCBIWWW.qblast("blastp","nr", aa_mc[2])

blast_qresult = SearchIO.read(Blast_aa_mc, "blast-xml")

print(blast_qresult)

我最近的《生物间谍节》笔记本教程中对此进行了介绍。


对于多个结果,请使用(环绕它以在内存中创建列表)SearchIO.parse(Blast_aa_mc, "blast-xml")list()


查看完整回答
反对 回复 2022-09-27
  • 2 回答
  • 0 关注
  • 117 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号