大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
用replace函数,先把style。。。/style等不需要的的内容替换为空
创新互联专注于曲麻莱企业网站建设,成都响应式网站建设,商城系统网站开发。曲麻莱网站建设公司,为曲麻莱等地区提供建站服务。全流程定制网站建设,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
再使用正则提取。
或者使用正则,只提取
p.../p之间的内容
import re
import os
def get_file_list(folder):
file_list = [];
for root, dirs, files in os.walk(folder):
for f in files:
path=root+os.path.sep+f
file_list.append(path)
return file_list
def get_re_file_list(file_list,re_rule):
file_list_re=[]
for file in file_list:
if re.search(re_rule,file):
file_list_re.append(file)
return file_list_re
def rename2new_file_list(file_list_re,re_rule,new_str):
re_c = re.compile(re_rule)
new_file_list = []
for i in range(0,len(file_list)):
new_base_name=re_c.sub(new_str,file_list[i][file_list[i].rindex(os.sep):])
new_full_path=file_list_re[i][:file_list_re[i].rindex(os.sep))+os.sep+base_name
new_file_list.append (new_full_path)
return new_file_list
def rename2list(old_list,new_list):
for i in range(0,len(old_list)):
os.rename(old_list[i],new_list[i])
def main():
root=""
re_rule=""
new_str=""
old_file_list=get_file_list(root)
re_file_list=(old_file_list,re_rule)
new_file_list=rename2new_file_list(re_file_list,re_rule,new_str)
rename2list(re_file_list,new_file_list)
if __name__ == '__main__'
main()
lt='CATGCATCGT'
def func1(liststr):
t=list(liststr);d=[]
dct={'A':'T','T':'A','C':'G','G':'C'}
for x in range(len(t)):
d.append(dct[t.pop()])
return d
其他的都简单,1.直接字符串反向处理,再逐一翻译;2.用正负数来处理,这个对于大量的任务可以提高效率;3.两遍处理,True、False开关;4.列表内替换,然后反向;5.成对换位,不过效率低下; 6.还有就是直接的字符串替换,然后一个切片s[::-1]就OK了 ;
lt='CATGCATCGT'
lt=lt.replace('A','{A}').replace('T','{T}').replace('C','{C}').replace('G','{G}')
result=lt.format(A='T',T='A',C='G',G='C')[::-1]
python中dict类型的key值要求是不可变类型,通常来说,我们一般采用int或者str类型来作为字典的key,但是在某些场景中,会造成一定的麻烦。
如我们有一个处理http Request的规则类名为Rule,其定义如下,它由一个Request path和其支持的Request methods数组组成:
class Rule(object): def __init__(self, path, methods): assert(isinstance(path, str)) assert(isinstance(methods, list))
self.path = path
self.methods = [method.upper() for method in methods]
现在我们想为每一种Rule(非每一个Rule实例)关联一个对应的Handler对象,使用一个dict来保存对应关系。
r1 = Rule("/index", ["GET"])
r2 = Rule("/index", ["GET"])
d = {r1: handler}print d[r2]# 两个不同的对象,打印出None
r1和r2虽然是两个不同的对象实例,但是在业务逻辑上是一致的,因此如果我们想让两个在逻辑上一致的对象被认为是同一个key,可以通过一些手段达到这个效果。
为Rule添加两个方法__hash__和__eq__,其意义可以查看python官方文档。
class Rule(object): def __init__(self, path, methods): assert(isinstance(path, str)) assert(isinstance(methods, list))
self.path = path
self.methods = [method.upper() for method in methods] def __hash__(self): return hash((self.path, str(self.methods))) def __eq__(self, other): return (self.path, self.methods) == (other.path, other.methods)
然后再执行一下上面的测试代码,发现可以顺利取到handler了:
r1 = Rule("/index", ["GET"])
r2 = Rule("/index", ["GET"])
d = {r1: handler}print d[r2] == handler# 打印出True