一:with语句用于打开文件
这里只说一下用于打开文件
with open("test.txt") as f:
data =f.read()
do something
这种方法增加了容错,可以不用想着关闭打开的文件。
二:split()方法分割字符串
split() 方法可以实现将一个字符串按照指定的分隔符切分成多个子串,这些子串会被保存到#列表#中(不包含分隔符),作为方法的返回值反馈回来。该方法的基本语法格式如下:
str.split(sep,maxsplit)
- str:表示要进行分割的字符串;
- sep:用于指定分隔符,可以包含多个字符。此参数默认为 None,表示所有空字符,包括空格、换行符“\n”、制表符“\t”等。
- maxsplit:可选参数,用于指定分割的次数,最后列表中子串的个数最多为 maxsplit+1。如果不指定或者指定为 -1,则表示分割次数没有限制。
在 split 方法中,如果不指定 sep 参数,那么也不能指定 maxsplit 参数。
举个栗子
一个4列的序列文件str,用split分割,进行重新排列
MetaCYC G-12236 Q58369 MKIDAVKKLLMIPGPTMVPPEVLNAMALPVIGHRTKDYSNLLEDTIEKLKKVFITENDTFLITGSGTAAMDMAISNIIKRGDKVLNIVTGNFGERFANIVKAYKGEAIRLDVEWGDMAEPEAVKEILDKYDDIKAVTVVHNETSTGARNPIKEIGEVVKDYDALYIVDTVSSLGGDYVNVDKFHIDICVTGSQKCLAAPPGLAAITVSEKAWEVIKKNDDKVGFYLDLLAYKKYYEEKKQTPYTPSVNLTYALNVALDLVLEEGIENRVKRHERLAKATRAGLEAMGIELFAKERARSVTVTSAKYPEGIEDSKFRGILSNKYNIVVAGGQKHLAGKIFRIGHMGICGEKEVLATLACVELALKELGFEVKESGVEVAKEVLLKE
- 代码
with open('./str','r') as str: ##用with方法打开文件
for line in str: ##对str中的每一行进行操作,可以是多行
tmp = line.split('\t') ##将每一行当作字符串用制表符分隔,存入变了tmp
print(tmp) ##打印变量,tmp变量是一个__列表__的形式存在
print(tmp[0:2]) ##由于tmp是列表的形式,所以就可以用提取列表元素的形式提取内容,取前两个元素
print(tmp[3])
print('>'+'|'.join(tmp[:3])+'\n'+tmp[3]) ##打印成标准fa格式,.join()函数会在后面讲。
- 结果
['MetaCYC', 'G-12236', 'Q58369', 'MKIDAVKKLLMIPGPTMVPPEVLNAMALPVIGHRTKDYSNLLEDTIEKLKKVFITENDTFLITGSGTAAMDMAISNIIKRGDKVLNIVTGNFGERFANIVKAYKGEAIRLDVEWGDMAEPEAVKEILDKYDDIKAVTVVHNETSTGARNPIKEIGEVVKDYDALYIVDTVSSLGGDYVNVDKFHIDICVTGSQKCLAAPPGLAAITVSEKAWEVIKKNDDKVGFYLDLLAYKKYYEEKKQTPYTPSVNLTYALNVALDLVLEEGIENRVKRHERLAKATRAGLEAMGIELFAKERARSVTVTSAKYPEGIEDSKFRGILSNKYNIVVAGGQKHLAGKIFRIGHMGICGEKEVLATLACVELALKELGFEVKESGVEVAKEVLLKE\n']
['MetaCYC', 'G-12236']
MKIDAVKKLLMIPGPTMVPPEVLNAMALPVIGHRTKDYSNLLEDTIEKLKKVFITENDTFLITGSGTAAMDMAISNIIKRGDKVLNIVTGNFGERFANIVKAYKGEAIRLDVEWGDMAEPEAVKEILDKYDDIKAVTVVHNETSTGARNPIKEIGEVVKDYDALYIVDTVSSLGGDYVNVDKFHIDICVTGSQKCLAAPPGLAAITVSEKAWEVIKKNDDKVGFYLDLLAYKKYYEEKKQTPYTPSVNLTYALNVALDLVLEEGIENRVKRHERLAKATRAGLEAMGIELFAKERARSVTVTSAKYPEGIEDSKFRGILSNKYNIVVAGGQKHLAGKIFRIGHMGICGEKEVLATLACVELALKELGFEVKESGVEVAKEVLLKE
>MetaCYC|G-12236|Q58369
MKIDAVKKLLMIPGPTMVPPEVLNAMALPVIGHRTKDYSNLLEDTIEKLKKVFITENDTFLITGSGTAAMDMAISNIIKRGDKVLNIVTGNFGERFANIVKAYKGEAIRLDVEWGDMAEPEAVKEILDKYDDIKAVTVVHNETSTGARNPIKEIGEVVKDYDALYIVDTVSSLGGDYVNVDKFHIDICVTGSQKCLAAPPGLAAITVSEKAWEVIKKNDDKVGFYLDLLAYKKYYEEKKQTPYTPSVNLTYALNVALDLVLEEGIENRVKRHERLAKATRAGLEAMGIELFAKERARSVTVTSAKYPEGIEDSKFRGILSNKYNIVVAGGQKHLAGKIFRIGHMGICGEKEVLATLACVELALKELGFEVKESGVEVAKEVLLKE
python中的.join()函数用法
join:连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串,就是分隔符+元素=新字符串
- 语法
'sep'.join(seq)
sep表示分隔符,可以为空;seq表示要连接的元素序列、字符串、元组、字典等
- 举个栗子
##以制表符分割
seq = ['how','are','you'] ##可以是列表
print('\t'.join(seq))
how are you
##拓展
seq1 = ('一','二','三') ##也可以是元组
print('+'.join(seq1[:2])+'='+seq1[2])
一+二=三