myk python file re瑞客应用处理生物信息学数据作图二_第1页
myk python file re瑞客应用处理生物信息学数据作图二_第2页
myk python file re瑞客应用处理生物信息学数据作图二_第3页
myk python file re瑞客应用处理生物信息学数据作图二_第4页
myk python file re瑞客应用处理生物信息学数据作图二_第5页
已阅读5页,还剩17页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

应用Python处理生物信息学数据和作图(二)Python文件读写(1)为什么要用文件?RAM的特点:读取速度快,但价格昂贵,断电后保存在上面的数据会自动消失磁盘的特点:读取速度比RAM慢,但容量大、费用低廉、断电后可长久保存数据普通文件可以看成是一个文件名下的字节流,把数据从文件读入内存,从内存向磁盘写入文件打开文件读写一个文件前先要打开它:fileobj=open(filename,

mode)Python文件读写(2)打开文件fileobj=open(filename,

mode)fileobj是open()函数返回的文件对象

filename是文件的字符串名mode指明操作和文件类型操作:r表示读模式,w表示写模式(文件不存在则创建,文件存在则清空重写),a表示追加(若文件存在,在文件末尾追加写入)、x表示文件不存在时创建新文

件写入(文件存在则报错)文件类型:默认为t,t表示以文本文件方式操作,b表示以二进制文件方式操作Python文件读写(3)写入文件>>>protein_sequence='''>NAD

kinaseisoform1[Homosapiens]...MEMEQEKMTMNKELSPDAAAYCCSACHGDETWSYNHPIRGRAKSRSLSASPALGSTKEFRRTRSLHGPCP...VTTFGPKACVLQNPQTIMHIQDPASQRLTWNKSPKSVLVIKKMRDASLLQPFKELCTHLMEENMIVYVEK...KVLEDPAIASDESFGAVKKKFCTFREDYDDISNQIDFIICLGGDGTLLYASSLFQGSVPPVMAFHLGSLG...FLTPFSFENFQSQVTQVIEGNAAVVLRSRLKVRVVKELRGKKTAVHNGLGENGSQAAGLDMDVGKQAMQY...QVLNEVVIDRGPSSYLSNVDVYLDGHLITTVQGDGVIVSTPTGSTAYAAAAGASMIHPNVPAIMITPICP...HSLSFRPIVVPAGVELKIMLSPEARNTAWVSFDGRKRQEIRHGDSISITTSCYPLPSICVRDPVSDWFES...LAQCLHWNVRKKQAHFEEEEEEEEEG'''Python文件读写(4)>>>

fout=open("protein_seq",

"wt")>>>

fout.write(protein_sequence)489>>>

fout.close()#或者可以使用print语句>>>

fout=open("protein_seq",

"wt")>>>

print(protein_sequence,

file=fout,

sep="",

end="")>>>

fout.close()sep默认是一个空格,end默认是一个换行符Python文件读写(5)数据分块写入#如果源字符串非常大,可以将文件分块写入>>>

fout=open("protein_seqs",

"wt")>>>

size=len(protein_sequences)>>>

offset=0>>>

chunk_size=100>>>

while

True:... if

offset

>

size:...

breakPython文件读写(6)fout.write(protein_sequences[offset:offset+chunk_size])offset=offset+chunk_size.........10010010010089>>>

fout.close()Python文件读写(7)如果protein_seqs文件已经存在,使用x模式可以避免重新写入文件>>>

fout=open("protein_seqs",

"xt")Traceback

(most

recent

call

last):File

"<stdin>",

line

1,

in

<module>FileExistsError:

[Errno

17]

File

exists:

'protein_seqs'Python文件读写(8)可以加入一个异常处理>>>

try:... fout=open("protein_seqs",

"xt")... fout.write(stomp

stomp

stomp)...

except

FileExistsError:... print

("protein_seqs

already

exists!")...protein_seqs

already

exists!Python文件读写(9)使用read()读入文本数据>>>

fin=open(”protein_seqs”,

”rt")>>>

protein_sequences=fin.read()>>>

fin.close()>>>

len(protein_sequences)489#read()函数一次性读入文件的所有内容#若文件很大,比如1GB,则需占用1GB内存Python文件读写(10)分块读取文件>>>

protein_sequences="">>>

fin=open("protein_seqs",

"rt")>>>

chunk=100>>>

while

True:.........fragment=fin.read(chunk)if

notfragment:break...protein_sequences

+=

fragmentPython文件读写(11)...>>>

fin.close()>>>

len(protein_sequences)489Python文件读写(12)使用readline()分行读取文件>>>

protein_sequences="">>>

fin=open("protein_seqs",

"rt")>>>

while

True:...............fragment=fin.readline()if

notfragment:break#如果不需要得到完整的文件,下一行可以改成处理这一行文本的代码

protein_sequences+=fragmentPython文件读写(13)...>>>

fin.close()>>>

len(protein_sequences)489Python文件读写(14)使用迭代器分行读取文件>>>

protein_sequences="">>>

fin=open("protein_seqs",

"rt")>>>

for

line

in

fin:...

protein_sequences+=line

#这行可改成其它处理一行序列的代码...>>>

len(protein_sequences)489Python文件读写(15)用readlines()函数返回单行字符串的列表>>>

fin=open("protein_seqs",

"rt")>>>

lines=fin.readlines()>>>

fin.close()>>>

print(lines)Python文件读写(16)['>NADkinaseisoform1[Homosapiens]\n','MEMEQEKMTMNKELSPDAAAYCCSACHGDETWSYNHPIRGRAKSRSLSASPALGSTKEFRRTRSLHGPCP\n','VTTFGPKACVLQNPQTIMHIQDPASQRLTWNKSPKSVLVIKKMRDASLLQPFKELCTHLMEENMIVYVEK\n','KVLEDPAIASDESFGAVKKKFCTFREDYDDISNQIDFIICLGGDGTLLYASSLFQGSVPPVMAFHLGSLG\n','FLTPFSFENFQSQVTQVIEGNAAVVLRSRLKVRVVKELRGKKTAVHNGLGENGSQAAGLDMDVGKQAMQY\n','QVLNEVVIDRGPSSYLSNVDVYLDGHLITTVQGDGVIVSTPTGSTAYAAAAGASMIHPNVPAIMITPICP\n','HSLSFRPIVVPAGVELKIMLSPEARNTAWVSFDGRKRQEIRHGDSISITTSCYPLPSICVRDPVSDWFES\n','LAQCLHWNVRKKQAHFEEEEEEEEEG']Python和正则表达式(1)有些人在碰到问题时,就想:“我知道,我可以使用正则表达式!” 现在,他们就有了两个问题。(by

Jamie“jwz”Zawinski)正则表达式是一些由字符和特殊符号组成的字符串,它们描述了模式 的重复或者表述多个字符,于是正则表达式能按照某种模式匹配一系 列有相似特征的字符串最简单的正则表达式:foo->foo,

Python->Python,

abc123->abc123引入特殊符号来定义字符集、匹配子组和重复模式这时正则表达式匹配的是字符集而不是单个的字符串Python和正则表达式(2)表示法描述正则表达式示例literal匹配文本字符串的字面值literalfoore1|re2匹配正则表达式re1或者re2foo|bar.匹配任意字符,\m除外b.b^匹配字符串的起始部分^Dear$匹配字符串的终止部分/bin/*sh$*匹配0次或者多次前面出现的正则表达式[A-Za-z0-9]*+匹配1次或者多次前面出现的正则表达式[a-z]+\.com?匹配0次或者1次前面出现的正则表达式goo?{N}匹配N次前面出现的正则表达式[0-9]{3}{M,N}匹配M~N次前面出现的正则表达式[0-9]{5,9}[...]匹配来自字符集的任意单一字符[aeiou][..x,y..]匹配x~y范围中的任意单一字符[0-9],[A-Z][a-z][^...]不匹配此字符集出现的任意一个字符,包括某一范围的字符[^aeiou],[^A-Za-z0-9]Python和正则表达式(3)表示法描述正则表达式示例(...)匹配括号封闭的正则表达式,然后另存为子组([0-9]{3})?,

f(oo|u)bar\d同[0-9],匹配任何十进制数字(\D匹配任何非数字,与\d相反)data\d+.txt\w同[A-Za-z0-9_],匹配字母数字下划线字符(\W与\w相反)[A-Za-z_]\w+\s同[\n\t\r\v\f],匹配任何空格字符(\S与\s相反)of\sthe\b匹配任何单词边界(\B与\b相反)\bThe\b\N匹配已保存的子组Nprice:\16\c匹配特殊字符c,按照字面意义匹配,不匹配特殊含义\*Python和正则表达式(4)Python通过使用re模块来支持正则表达式函数/方法描述compile(pattern,

flags=0)使用任何可选标记来编译正则表达式的模式,然后返回一个正则表达式对象match(pattern,

string,flags=0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论