当前位置:   article > 正文

Python中的正则表达式_info.split(

info.split(

Python对序列的一系列操作

处理字符串

例如提取序列编名,并改变,字符串解析

s1 = '>gi|2765656|emb|Z78531.1|CFZ78531 C.fasciculatum 5.8S rRNA gene and ITS1 and ITS2 DNA'
  • 1

字符串分离 目的将Z78531.1与C.fasciculatum 提取出来

info1 = s1.split(' ')        #把字符串分割为列表
species = info1[1]       #抓取元素
info2 = info1[0].split('|')  #将抓取的元素再以竖线分隔
gene_id = info2[3]         #抓取元素

print(species)         #打印
print(gene_id)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

字符串分割符只能指定一个比较麻烦

正则表达式

import re  #导入Python re模块
  • 1

应用一:字符串分隔

s1= '>gi|2765656|emb|Z78531.1|CFZ78531 C.fasciculatum 5.8S rRNA gene and ITS1 and ITS2 DNA'
re.split('\s|\|',s1)       #将s1以空格或者竖线分隔
info = re.split('\s|\|',s1) 
gene_id = info[3]
species = info[5]
  • 1
  • 2
  • 3
  • 4
  • 5

应用二:替换

p = '187-3276-8989'       #数据统一化
re.sub('-|\s','',p)              #替换
re.sub('\D','',p)               #\D非数字
  • 1
  • 2
  • 3

应用三:效验

s = 'www.genek.cn'

re.search('w{3}.\w+.(com|cn|tv|org)',s)             # 有返回即是正确的

m=re.search('w{3}.\w+.(com|cn|tv|org)',s)

if m:                                                                  #条件判断打印
  print('it is match!')
else:
  print('It is not match')
  
m.start()                 #匹配起始
m.end()                  #匹配末端位置
m.span()                #匹配起始与末端位置
m.group()               #匹配元素
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

应用四 :捕获

s1 = '>gi|2765656|emb|Z78531.1|CFZ78531 C.fasciculatum 5.8S rRNA gene and ITS1 and ITS2 DNA'
s2 = '>gi|2765658|emb|Z78533.1|CIZ78533 C.irapeanum 5.8S rRNA gene and ITS1 and ITS2 DNA'
s3 = '>gi|2765657|emb|Z78532.1|CCZ78532 C.californicum 5.8S rRNA gene and ITS1 and ITS2 DNA'

re.search('>gi\|\d+\|emb\|\S+\|\S+\s+\S+\s',s1)                      #通过自己需求来分隔有规律的元素
m1 = re.search('>gi\|\d+\|emb\|(\S+)\|\S+\s+(\S+)\s',s1)       #其中括号很妙,用括号分组
m1.group()
gene_id = m1.group(1)
species = m1.group(2)

print(gene_id,species)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
^匹配字符串的开头
.匹配任意字符除了换行符
x\y
[xyz]‘x’或’y’或’z’
[^xyz]除了’x’或’y’或’z’ ,以外的字符
N*匹配0个或多个‘N’
N+匹配一个或多个‘N’
N?非贪婪方式
N{2}匹配两个‘N’
N{3,8}匹配3到8个‘N’
\w匹配数字字母下划线
\W匹配非数字字母下划线
\s匹配任意空白字符,等价于[\t \n \r \f]
\S匹配任意非空字符
\d匹配任意数字,等价于[0-9]
\D匹配任意非数字
\n,\t,等匹配一个换行符。匹配一个制表符,等

应用五 :查找

s = '''CGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTGATGAGACCGTGGAATAAACGATCGAGTG
AATCCGGAGGACCGGTGTACTCAGCTCACCGGGGGCATTGCTCCCGTGGTGACCCTGATTTGTTGTTGGG
GTGACCCCAGGTCAGGCGGGGGCACCCGCTGAGTTTACGC'''   #长序列一般都要用三引号

m = re.search('C[ATC]G',s)
m.group()   #只能查找一个

re.finditer('C[ATC]G',s)          #此函数能全部查找出来,然后用for循环打印出来。

for m in re.finditer('C[ATC]G',s):
  print(m.span(),m.group())
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

格式化字符串

n = 7
total_len = 123789
mean_len = 123.456789
gc_content = 0.45
longest_id ='chr3'
longest_len = 345
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

逗号分隔

print('序列条数:',n)
  • 1

字符串连接

print('序列条数:' +str(n))
  • 1

格式化字符串

print('序列条数:{}'.format(n))
print('平均长度:{:.2f}'.format(mean_len))
print('GC含量: {:.2%}'.format(gc_content))
print('最长染色体:{: s},它的长度为 {:d}'.format(longest_id,longest_len))
  • 1
  • 2
  • 3
  • 4

对字符串进行格式化

print('{:10s}:{:10d}'.format('序列条数',n))
print('{:10s}:{:10.2f}'.format('平均长度',mean_len))
print('{:10s}:{:10.2%}'.format('GC含量',gc_content))
print('{0:10s}:{2:>10s}:{1:10s}:{3:10d}'.format('最长染色体','它的长度为',longest_id,longest_len))
  • 1
  • 2
  • 3
  • 4

#字符串默认左对齐,数字默认右对齐。{2:>10s}大于号右对齐

完整写法 {位置: 填充方式 对齐方式 字符宽度 小数位数 数据类型}

字符串格式化的三种方法

%
format
Fstring

常用格式

数字格式输出描述
‘total len’{ : s}total len字符串
3.1415926{:.2f}3.14保留小数点后两位
3.1415926{:+.2f}+3.14带符号保留小数点后两位
-1{:+.2f}-1.00带符号保留小数点后两位
2.71828{:.0f}3不带小数
5{:0>2d}05数字补零 (填充左边, 宽度为2)
5{:x<4d}5xxx数字补x (填充右边, 宽度为4)
10{:x<4d}10xx数字补x (填充右边, 宽度为4)
13{:>10d}13右对齐 (默认, 宽度为10)
13{:<10d}13左对齐 (宽度为10)
13{:^10d}13中间对齐 (宽度为10)
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式
1000000000{:.2e}1.00e+09指数记法

小结 2022.9.3 星期六

周末自己也有点小乏,没有之前那么有精神,不过能保持写作就是很棒的,早上列了一大堆任务到头来也只完成了两三件,事情的完成效率还是有点低喔,跑了四百个样的pcr,然后再把四百分样,跑琼脂糖,看着挺简单的活也给我整了三四个小时,笑哭

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/426114
推荐阅读
相关标签