美文网首页python
python中with语句及split()以及.join()的用

python中with语句及split()以及.join()的用

作者: 多啦A梦的时光机_648d | 来源:发表于2020-03-22 11:32 被阅读0次

一: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])
一+二=三

相关文章

网友评论

    本文标题:python中with语句及split()以及.join()的用

    本文链接:https://www.haomeiwen.com/subject/jhjmyhtx.html