python实例1--获取序列名称和序列

来源:互联网 发布:北京航空学院网络教育 编辑:程序博客网 时间:2024/05/17 17:41

O00626|HUMAN Small inducible cytokine A22.
MARLQTALLVVLVLLAVALQATEAGPYGANMEDSVCCRDYVRYRLPLRVVKHFYWTSDS<=
CPRPGVVLLTFRDKEICADPR
VPWVKMILNKLSQ
获取序列名称和序列

#!/usr/bin/python#打开文件,fh是句柄名fh = open('./seqA.fas')myfile = fh.read()#read函数将整个文本读成一个字符串name = myfile.split('\n')[0][5:]#用回车作为分隔符,[0]是选取分割后的第1项,[5:]取第六个字符以后的,下标从0开始seq = ''.join(myfile.split('\n')[1:])#''内是连接符,[1:]是取分割后的第2个及以后print("the name is: %s"%name)#注意:这里没有逗号print("the seq is: %s"%seq)fh.close()#关闭

运行结果:
the name is: O00626|HUMAN Small inducible cytokine A22.
theseqis:MARLQTALLVVLVLLAVALQATEAGPYGANMEDSVCCRDYVRYRLPLRVVKHFYWTSDS<=CPRPGVVLLTFRDKEICADPRVPWVKMILNKLSQ
问题:read()函数一次读取文件,需要足够的可用内存
******************************* 改进 *************************************
用readline()来读取一行

#!/usr/bin/pythonfh = open('./seqA.fas')#readline只读取一行(含回车),这里是第一行,读取后就是字符串了,[1:-1]取第二个到倒数第二个,-1是最后一个,但是这里不包括最后name = fh.readline()[1:-1]seq = ""for line in fh:        seq += line.replace('\n','')print "name: %s"%nameprint "seq: %s"%seqfh.close()

技巧:去掉回车符

 line = f.readline() line = line[:-1]
0 0
原创粉丝点击