如何解决使用 re.search 搜索文件并将输出保存到新文件
我已经为此纠结了一段时间:
我正在搜索文件以查找模式并希望将输出保存到另一个文件。 但是我不断收到错误:
'str' object has no attribute 'write'
!wget 'ftp://ftp.uniprot.org/pub/databases/uniprot/current_release/kNowledgebase/complete/uniprot_sprot.dat.gz'
!gunzip uniprot_sprot.dat.gz
这是我尝试过的:
import re
with open('uniprot_sprot.dat','r') as f:
for i in f:
#if re.search(r"^ID|^SQ|^\s",i):
if re.search(r'^ID|^\s',i):
print(i,file = 'output.txt')
我可以正常打印到标准输出,但是在写入文件时出现上述错误消息。
ID ACDH3_MYCVP Reviewed; 306 AA.
MADKKSVAIV GSGNISTDLL YKLlrsEWLE PRWMIGIDPE SEGLaraRKL GLETSHEGVD
WLLAQSELPD MVFEATSAYV HKAAAPRYAE AGIRAIDLTP AAVGPGVIPP ANLRAHLDAP
NVNMVTCGGQ ATIPMVYAVS RVVEVPYAEI VASVSSASAG PGTRANIDEF TKTTSAGVQN
IGGAQRGKAI IILNPAEPPM IMRDTIFCAI PEHADHAAIT QSIKDVVAEV QTYVPGYRLL
NEPQFDEPSV VNGGNHVVTV FVEVEGAGDY LPPYAGNLDI MTAAATKVGE EIAKESLAAT
AGGAQA
ID ACDH3_NOCFA Reviewed; 328 AA.
MNHMSDPTTV KVAVIGSGNI GTDLMIKVIR ...
谢谢
解决方法
您可以open
输出文件,与您对输入文件所做的相同
with open('uniprot_sprot.dat') as f_in,open('output.txt','w') as f_out:
for i in f_in:
if re.search(r'^ID|^\s',i):
f_out.write(i)
,
这个
print(i,file = 'output.txt')
是不正确的用法,file
应该是一个类似文件的对象(流);默认为当前的 sys.stdout。 示例用法:
i = [1,2,3]
with open("output.txt","w") as f:
print(i,file=f)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。