博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
内置模块
阅读量:4312 次
发布时间:2019-06-06

本文共 24762 字,大约阅读时间需要 82 分钟。

一  time 模块

1 '2017-06-21'   #时间字符串 2 import time 3 #时间戳 4 ''' 5 1970_01_01 0:0:0  -------------------最开始时间 6 1970_01_01 0:0:1  ------------------ 以秒开始计算 7  8 1971_01_01 0:0:0  -----------------------24*3600*365  以秒计算时间 9 '''10 #当前时间戳11 # print(time.time())12 13 #时间对象     对象.方法14 #print(time.localtime())15 16 # g=time.gmtime()17 # print(g)18 19 #取部分时间20 # s=time.localtime()   #21 # print(s.tm_year)22 23 #将时间戳转换成结构化时间24 # s=time.localtime(7552574592)25 # print(s)26 27 #将结构化时间转换成时间戳28 # s=time.mktime(time.localtime())   #29 # print(s.tm_year)30 31 # g=time.mktime(time.gmtime())32 # print(g)33 34 #时间字符串35 # g='2012-02-23'36 # print(g)37 38 #将结构时间转换成时间字符串39 # s=time.strftime('%Y-%m-%d',time.localtime())40 # print(s)41 42 #将字符串时间转换成结构化时间43 # a=time.strptime('2012-02-23','%Y-%m-%d')44 # print(a)45 46 #将时间戳转换成字符串时间,转换的时间字符串格式是定义好的47 # print(time.ctime(2146897342))48 49 #将结构化时间转换成字符串时间,只需要提供结构化时间,不需要给他格式,就是返回一个固定时间,转换的时间字符串格式是定义好的50 # print(time.asctime())51 52 #时间睡一下,相当于停多少时间,模拟了I/O操作。暂停时不会占用CPU53 # time.sleep(1)54 55 #时间戳是就是一个浮点型的数字,标识着对应的年份56 #结构化时间方便我们取决信息57 #时间字符串为了让我们人能看懂58 59 60 61 # #小练习62 # s='2017-6-21'63 # struct_t=time.strptime(s,'%Y-%m-%d')   #先将字符串时间转换成结构化时间64 # stamp_t=time.mktime(struct_t)      #然后再将结构化时间转换成时间戳65 # new_stamp=stamp_t+3600*24*3        #然后再加上3天的时间戳66 # new_etr_t=time.strftime('%Y-%m-%d',time.localtime(new_stamp))  #最后再转回去,转成字符串时间。67 # print(new_etr_t)
View Code

二 random 随机模块

1 #随机数模块 2 # import random 3 # 4 # #返回一个floot浮点型数字,范围在0到1之间的浮点型数字 5 # #print(random.random()) 6 # 7 # #取整数,取头也取尾,随机取一个值 8 # print(random.randint(1,6)) 9 #10 # #取整数,顾头不顾尾,随机取一个值11 # print(random.randrange(1,6))12 #13 # #随机取列表中的一个元素14 # print(random.choice([1,4,7,2,0,6]))15 #16 # #随机取多个值,自己定义17 # print(random.sample([1,5,6,76,7,4],3))18 #19 # #取该范围的浮点型数字20 # print(random.uniform(1,4))21 #22 # #打乱列表中的数字23 # l=[1,2,3,4,5,6]24 # random.shuffle(l)25 # print(l)26 27 28 #练习,随机五位验证码,包括大小写字母,还有数字。29 # import random30 # def fang():31 #     ret=''32 #     for i in range(5):33 #         a=random.randint(0,9)34 #         b=chr(random.randint(97,122))35 #         c=chr(random.randint(65,90))36 #         s=random.choice([str(a),b,c])37 #         ret=ret+s38 #     return ret39 # print(fang())
View Code

三 hashlib 模块  摘要算法

1 #摘要算法 2 # import hashlib 3 # #返回一个32未16进制的数字,返回的16进制数字是定义好的 4 # md5_obj=hashlib.md5() 5 # md5_obj.update(b'hello')    #    5d41402abc4b2a76b9719d911017c592 6 # print(md5_obj.hexdigest()) 7 # 8 # #返回一个32未16进制的数字,返回的16进制数字是定义好的 9 # md5_obj=hashlib.md5()10 # md5_obj.update(b'helloworld')   #    fc5e038d38a57032085441e7fe7010b011 # print(md5_obj.hexdigest())12 #13 # #返回一个内容分成两个小的内容16进制的数字,返回的16进制数字和只返回那一个的结果一样14 # md5_obj=hashlib.md5()15 # md5_obj.update(b'hello')16 # md5_obj.update(b'world')    #   fc5e038d38a57032085441e7fe7010b017 # print(md5_obj.hexdigest())18 19 #总结:在想要返回一个大内容的时候,可以把他分成多个小的内容,然后在一块返回结果。20 #’’’21 #摘要算法应用:文件一致性,登陆22 #例如:23 #username                              pwd24 #方杰                                 62374559454525 #975485445486448                      86583564573126 #6583454589687                        577423456655527 28 29 #fang                                646763548554888758830 #jie                                 5436532437i8768586531 #’’’32 33 #加盐:就是在需要返回的参数还没有在定义之前加入内容。34 # import hashlib35 # md5_obj=hashlib.md5(b'hello')36 # md5_obj.update(b'fang')             #d621f78d93f9bd588acae089c88ff14937 # print(md5_obj.hexdigest())
View Code

 四  os  模块

1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 2  3 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd 4  5 os.curdir 返回当前目录: ('.') 6  7 os.pardir 获取当前目录的父目录字符串名:('..') 8  9 os.makedirs('dirname1/dirname2') 可生成多层递归目录10 11 os.removedirs('dirname1') 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推12 13 os.mkdir('dirname') 生成单级目录;相当于shell中mkdir dirname14 15 os.rmdir('dirname') 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname16 17 os.listdir('dirname') 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印18 19 os.remove() 删除一个文件20 21 os.rename("oldname","newname") 重命名文件/目录22 23 os.stat('path/filename') 获取文件/目录信息24 25 os.sep 输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"26 27 os.linesep 输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"28 29 os.pathsep 输出用于分割文件路径的字符串 win下为;,Linux下为:30 31 os.name 输出字符串指示当前使用平台。win->'nt'; Linux->'posix'32 33 os.system("bash command") 运行shell命令,直接显示34 35 os.environ 获取系统环境变量36 37 os.path.abspath(path) 返回path规范化的绝对路径38 39 os.path.split(path) 将path分割成目录和文件名二元组返回40 41 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素42 43 os.path.basename(path) 返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素44 45 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False46 47 os.path.isabs(path) 如果path是绝对路径,返回True48 49 os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False50 51 os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False52 53 os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略54 55 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间56 57 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间58 59 os.path.getsize(path) 返回path的大小
View Code

 五  sys 模块

1 # import sys 2 # sys.exit()   #推出程序,正常退出时是sys.exit(0) 3 # sys.argv      #命令函参数,第一个元素是程序本身路径 4 # sys.path      #返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 5 # sys.version    #获取python解释器的版本信息 6 # sys.maxint    #最大的Int值 7 # sys.platfrom   #返回icaozuo系统平台名称 8 # 9 #10 #11 # 小练习12 # count=113 # while count<10:14 #     print('ok')15 #     if count==8:16 #         #break        #终止了if判断的后面条件,但是while循环还会继续进行17 #         sys.exit()  #程序在这后面的都结束。直接全部终止18 #     count+=119 # print('ending')20 #21 #22 #23 #24 # 小练习25 #26 # ret=sys.arge    #["模块.py","fang","666"]27 # print(ret)   #["sys模块.py",'-u','fang','-p','666']28 #             #  只有放在-u后面的是用户名,放在-p后面的是用户名密码。29 # username=ret[1]30 # password=ret[2]31 # print(sys.argv)   #显示当前服务器的绝对路径,32 # print('huijia')33 # username=input('username:')   #io是一个阻塞状态34 # password=input('password:')35 # if username =='fang'and password=='666':36 #     print('huijia')37 #38 # sys.path   #显示一堆路径,以列表的形式显示出来39 # print(sys.path)  #['E:\\文本编辑器\\pycharm\\方杰\\目录\\模块', 'E:\\文本编辑器\\pycharm', 'E:\\python3.5\\python36.zip',40 #  'E:\\python3.5\\DLLs', 'E:\\python3.5\\lib', 'E:\\python3.5', 'E:\\python3.5\\lib\\site-packages']41 # #寻找模块,从当前的路径下开始寻找,如果当前路径下没有,就会挨个的按照列表42 # # 的顺序寻找下去,如果找到了,就不再寻找。43 # import re44 # import hashlib45 # print(re.findall(r"hello","hello"))46 #47 #48 # Base_dir=r'E:\文本编辑器\pycharm\方杰\阿豪'49 # sys.path.append(Base_dir)50 # import lesson151 # lesson1.foo()52 # 不管是人家添加还是自己添加的模块,只要有路径,就会寻找到。
View Code

六  logging 模块  日志模块

1 #日志模块:为我们记录一些信息 2 # import logging 3  4 # logging.basicConfig( 5 #     # level=logging.INFO 6 #     # level=logging.DEBUG 7 #     level=logging.ERROR, 8 #     # filename='log.txt', 9 #     # filemode='a',  #追加的方式写入     #也可以写'w'是覆盖写入10 #     format='%(asctime)s---%(filename)s---%(lineno)s---%(name)s--%(message)s'11 # )#2017-06-22 15:55:37,614---logging.模块.py---14---root12 # # 2017-06-22 15:55:37,659---logging.模块.py---15---root13 # # 2017-06-22 15:55:37,659---logging.模块.py---16---root14 #15 #16 # logging.debug('debug message')17 # logging.info('info message')18 # logging.warning('warning message')19 # logging.error('error message')20 # logging.critical('critical meddage')21 22 # #logging 对象23 # import logging24 #25 # logger_obj=logging.getLogger()26 #27 # fh=logging.FileHandler('logger_file.txt')28 # ch=logging.StreamHandler()29 #30 # #创建格式31 # logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')32 # fh.setFormatter(format)33 # ch.setFormatter(format)34 # #35 # # logger_obj.addHandler(fh)         #logger对象可以添加多个fh和ch对象36 # # logger_obj.addHandler(ch)37 #38 # logger_obj.info('info')39 # logger_obj.error('error')40 # logger_obj.warning('warning')41 # logger_obj.debug('debug')42 #43 #44 # import logging45 #46 # def get_logger():47 #     logger_obj=logging.getLogger()48 #49 #     fh=logging.FileHandler('logger_file.txt')              # 创建一个handler,用于写入日志文件50 #     ch=logging.StreamHandler()           # 再创建一个handler,用于输出到控制台51 #52 #     #创建格式53 #     logging.Formatter('%(asctime)s-%(name)s-%(levelname)s-%(message)s')54 #     fh.setFormatter(format)55 #     ch.setFormatter(format)56 #     return logger_obj57 # logger_obj=get_logger()58 #     #59 #     # logger_obj.addHandler(fh)60 #     # logger_obj.addHandler(ch)61 #62 # logger_obj.info('info')63 # logger_obj.error('error')64 # logger_obj.warning('warning')65 # logger_obj.debug('debug')
View Code

七 json 模块  有序化模块

1 #序列化 2 #import json 3  4  5 # 有序化加入 6 # import json 7 # 8 # fang={"name":'jie','age':18} 9 # f=open('l.txt','w')10 # hui=json.dumps(fang)11 # print(hui)12 # print(type(hui))13 # f.write(hui)14 # f.close()15 #有序化返回16 # import json17 # f=open('l.txt','r')18 # hui=f.read()19 # fang=json.loads(hui)20 # print(fang)21 # print(type(fang))22 23 #有序化24 # import json25 # f=open('la.txt','r')26 # hui=f.read()27 # fang=json.loads(hui)28 # print(fang)29 # print(type(fang))30 31 32 # import json33 # fang={'name':'jie','age':18}34 # f=open('hui.txt','w')35 # dong=json.dumps(fang)36 # print(dong)37 # print(type(dong))38 # f.write(dong)39 # f.close()40 41 # import json42 # f=open('hui.txt','r')43 # dong=f.read()44 # ai=json.loads(dong)45 # print(ai)46 # print(type(ai))47 48 #简写有序化49 # import json50 # fang={'name':'jie','age':18}51 # f=open('hui.txt','w')52 # json.dump(dic,f)53 # f.close()54 55 #简写有序化返回56 # import json57 # f=open('hui.txt','r')58 # a=json.load(f)59 # print(a)60 # print(type(a))
View Code

八  pickle 模块  只限于python中使用的有序化模块

1 #  和json使用方法一样,仅仅换了一个名字。 2 # 缺点:pickle仅仅用于python数据类型转换,不能再其他的语言之间进行使用。 3 # 优点:能支持python的所有数据类型,所有数据类型之间都可以进行转换的。 4 # 5  6 #加入类容 7 # import pickle 8 # 9 # a={'name':'b','age':22}10 # # print(type(a))         #class 'dict'11 # c=pickle.dumps(a)12 # print(c)13 # print(type(c))   #calss 'bytes'14 #15 # f=open('有序化对象——piskle','wb')  #注意’w‘是写入str,wb是写入bytes,c是’bytes‘16 # f.write(c)         #    等价于piskle。dump(c,f)17 # f.close()18 #19 #返回数据20 # import pickle21 # f=open('有序化对象——piskle','rb')22 # h=pickle.loads(f.read())  #等同于h=pickle.liad(f)23 # print(h)24 # print(h['age'])25 #26 #27 28 29 #练习30 # import datetime31 # d=datetime.datetime.now()32 # print(d)33 # print(type(d))34 #
View Code

 九 re   模块  正则表达式

1 #正则表达式的功能:字符串的模糊匹配查询。  2 import re  3 # ret=re.findall("方","方杰,方合意,方磊,光东,阿杰,李杰,方何军")    ##匹配出所有符合条件的元素  4 # print(ret)  5   6 #  .   可以代替除换行符以外任意一个元素,  7 # ret=re.findall("方..","方杰,方合意,方磊,光东,阿杰,李杰,方何军")    ##匹配出所有符合条件的元素  8 # print(ret)  9  10  11 # ret=re.findall("方.","方杰,方合意,方磊,光东,阿杰,李杰,方何军")   #匹配出所有符合条件的元素 12 # print(ret) 13  14 # ^  匹配第一个 元素的类容,匹配不成功,也不会去匹配后面的元素 15 # ret=re.findall("^方.","方杰,方合意,方磊,光东,阿杰,李杰,方何军")   #匹配出所有符合条件的元素 16 # print(ret) 17  18 # $  匹配该对象的最后一个内容,不会去匹配其他位置的内容 19 # ret=re.findall("y..n$","方杰,方合意,方磊,光东,阿杰,李杰,方何军yuan")   #匹配出所有符合条件的元素 20 # print(ret) 21  22 # *(0到无穷次)  +(1到无穷次)  ?(0到1)  {}  :制定次数 23 # ret=re.findall("\d{16}","234214455,663255654534246,545556564367656653,4453576489780423") 24 # print(ret) 25  26 # ret=re.findall("333\d*","333234214455,333255654534246,545556564367656653,4453576489780423") 27 # print(ret) 28  29 # ret=re.findall("333\d+","3334214455,333255654534246,333,56564367656653,4453576489780423") 30 # print(ret) 31  32 # ret=re.findall('131\d+?','1312312312') 33 # print(ret) 34  35 # ret=re.findall("\d+\.?\d+","3555,8498,64.674,2344") 36 # print(ret) 37  38 #匹配整数 39 # ret=re.findall("\d","3334214455,3332546,333,56564356653,44580423") 40 # print(ret) 41  42 # ret=re.findall("\d+","33342455,3332546,-333,5653,-4423") 43 # print(ret) 44  45 #可以匹配出负整数和正整数 46 # ret=re.findall("-?\d+","33342455,3332546,-333,5653,-4423") 47 # print(ret) 48  49 # ret=re.findall("\d?","2342,43,7654,87") 50 # print(ret) 51  52 #转义符 \ 53  54 #\n  换行符 55  56 #将原字符转换成普通符号 57 # ret=re.findall("\.com","www.baidu.com,www.youji.com,www.xiongdi.com,www.ss.cn") 58 # print(ret) 59  60 #将一些普通符号转换成特殊功能 61  62 #\w匹配任何字母数字字符; 它相当于类 [^a-zA-Z0-9_] 63 # ret=re.findall("\w","yuan323665534") 64 # print(ret) 65  66 #\W  匹配任何非字母数字字符; 它相当于类 [^a-zA-Z0-9_] 67 # ret=re.findall("\W","yuan3236$655&34") 68 # print(ret) 69  70 # ret=re.findall("\w+","yuan323665534") 71 # print(ret) 72  73 #\d  匹配任何十进制数;      它相当于类 [0-9]。 74 # ret=re.findall("\d","yuan3236$655&34") 75 # print(ret) 76  77 #\D  匹配任何非数字字符;    它相当于类 [^0-9]。 78 # ret=re.findall("\D","yuan3236$655&34") 79 # print(ret) 80  81 #\s 匹配任何空白字符;      它相当于类 [ \t\n\r\f\v]。 82 # ret=re.findall("\s","hello i love like") 83 # print(ret) 84  85 #\S  匹配任何非空白字符;    它相当于类 [^ \t\n\r\f\v]。 86 # ret=re.findall("\S","hello i love like") 87 # print(ret) 88  89 #\b  匹配一个特殊字符边界,比如空格 ,&,#等 90 # ret=re.findall(r"i\b","hello i love like") 91 # print(ret) 92  93 # ret=re.findall(r"i\b","hello i love li$ke") 94 # print(ret) 95  96 # r 97 # ret=re.findall(r"c\\l","abc\le") 98 # print(ret) 99 100 #字符集[]:  在[]里面多选一的效果  一个字符集只匹配一个字符101 # ret=re.findall(r"abc","abcjpofdabhiac")102 # print(ret)103 104 #105 # ret=re.findall(r"a[bc]","abcjpofdabhiac")106 # print(ret)107 108 # ret=re.findall(r"a[bc]d","abdcjpofdabhiacd")109 # print(ret)110 111 # ret=re.findall(r"a[b.c]d","abcjpofdabhia.dc")112 # print(ret)113 114 115 #字符集里面只有三个特殊符号:- ^ \116 117 # ret=re.findall(r"[0-9]","ds1246634347cvkdhsd")118 # print(ret)119 #120 #121 # ret=re.findall(r"[a-z]","ds1246634347cvkdhsd")122 # print(ret)123 #124 # ret=re.findall(r"[A-Z]","ds1246DSJFKS47cvkdhsd")125 # print(ret)126 #127 # ret=re.findall(r"[A-Za-z0-9]","ds1246634347cvkdhsd")128 # print(ret)129 130 # ret=re.findall(r"a[\d]c","ds12a34c7cvkdhsd")131 # print(ret)132 133 134 # ret=re.findall(r"[^\d]","ds1246634347cvkdhsd")135 # print(ret)136 137 138 # ret=re.findall(r"[^\da-z]","ds1246634347cvk#dhsd")139 # print(ret)140 141 #字符集  |  或者的意思  要配合 ()用的142 143 # ret=re.findall("www\.(\w+)\.com","www.baidu.com,www.youji.com,www.xiongdi.com,www.ss.cn")144 # print(ret)145 146 # ret=re.findall("www\.(\w+)\.(com|cn)","www.baidu.com,www.youji.com,www.xiongdi.com,www.ss.cn")147 # print(ret)148 149 # ret=re.findall("www\.(?:\w+)\.(?:com|cn)","www.baidu.com,www.youji.com,www.xiongdi.com,www.ss.cn")150 # print(ret)151 152 #分组  ()153 # ret=re.findall("(fang)","fangffksdl;hfangfangfnag")154 # print(ret)155 #156 # ret=re.findall("(fang)+","fangffksdl;hfangfangfnag")157 # print(ret)158 159 # ret=re.findall("(方.{1,3}),","方杰归来,方合意,方磊,光东,阿杰,李杰,方何军,")    ##匹配出所有符合条件的元素160 # print(ret)161 162 #只有匹配到了一项内容就不会在继续匹配了163 # ret=re.search("(fang)+","fangffksdl;hfangfangfnag")164 # print(ret)165 # print(ret.group())166 # 167 # #没有匹配内容则会返回None,group()则会报错报错168 # ret=re.search("(fakl)+","fangffksdl;hfangfangfnag")169 # print(ret)170 # print(ret.group())171 172 173 174 #match  只匹配字符串开头的位置175 # ret=re.match("(fang)+","fangffksdl;hfangfangfnag")176 # print(ret)177 # print(ret.group())178 179 #开头位置匹配不上就会报错180 # ret=re.match("(fang)+","sdffangffksdlaihngfangfnag")181 # print(ret)182 # print(ret.group())183 184 185 186 187 # ret=re.search(r"blog-aticles-20[01]\d","blog-aticles-2005")188 # print(ret)189 # print(ret.group())190 #191 #192 # ret=re.search(r"blog-aticles-20[01]\d-\d+","blog-aticles-2005-12")193 # print(ret)194 # print(ret.group())195 #196 #197 # ret=re.findall(r"blog-aticles-(20[01]\d)-(\d+)","blog-aticles-2005-12")198 # print(ret)199 #200 #201 # #命名分组202 # ret=re.search(r"blog-aticles-(?P
20[01]\d)-(\d+)","blog-aticles-2005-12")203 # print(ret.group('year'))204 #205 # ret=re.search(r"blog-aticles-(?P
20[01]\d)-(?P
\d+)","blog-aticles-2005-12")206 # print(ret.group('mansh'))
View Code
1 #贪娈匹配 2 # ret=re.findall("abc+","abccccccccccccccgds") 3 # print(ret) 4  5 # ret=re.findall("abc{1,}","abccccccccccccccgds") 6 # print(ret) 7  8 #非贪娈模式 9 # ret=re.findall("abc+?","abccccccccccccccgds")10 # print(ret)11 12 # s="asfdhgfasflfhfas"13 # ret=re.findall("as.*?as",s)14 # print(ret)15 16 17 #import re18 #re.findall()19 # ret=re.findall("abc(?:\d)","abc34das")   #1返回的是列表的格式  2 findall优先筛选20 # print(ret)21 22 #分割23 # s="hello23fang54jie543jia"24 # ret=re.split("\d+",s)25 # print(ret)26 #27 # #自定义分割28 # s="hello23fang54jie543jia"29 # ret=re.split("\d+",s,1)30 # print(ret)31 32 #同时返回分隔符33 # s="hello23fang54jie543jia"34 # ret=re.split("(\d+)",s)35 # print(ret)36 37 #替换38 # ret="hello fang".replace("fang","jie")39 # print(ret)40 41 #多个同时替换42 # ret=re.sub("f.*?g","jieshao","hello fang fhog felscg")43 # print(ret)44 45 #多个替换,同时显示替换词数46 # ret=re.subn("f.*?g","jieshao","hello fang fhog felscg")47 # print(ret)48 49 #编译50 # obj=re.compile("\d+")51 # a=obj.findall("sfjdskghr7o456o474o56j5h")52 #print(a)53 # ret=obj.findall("sdg36ew4375g5445y")  #和re.findall一样,不过可以在多个使用时,同时使用一个编译54 # print(ret)55 56 #迭代器57 # ret=re.finditer("\d+","sdj6jtqbvw4y4n56m456h876nl;wnB%$5ln56l7jb6kn7jiuk3vtb5jnil6756")58 # print(ret)59 # print(next(ret).group())60 # print(next(ret).group())61 # print(next(ret).group())62 # print(next(ret).group())63 # print(next(ret).group())64 65 66 67 #1 findall的优先级查询:68 69 70 # import re71 #72 # ret=re.findall('www.(baidu|oldboy).com','www.oldboy.com')73 # print(ret)#['oldboy']     这是因为findall会优先把匹配结果组里内容返回,如果想要匹配结果,取消权限即可74 #75 # ret=re.findall('www.(?:baidu|oldboy).com','www.oldboy.com')76 # print(ret)#['www.oldboy.com']77 78 79 #2 split的优先级查询80 81 # ret=re.split("\d+","yuan2egon56alex")82 # print(ret)83 #84 # ret=re.split("(\d+)","yuan2egon56alex")85 # print(ret)
View Code

十 configparser模块 

1 #文件的基本格式是  例如: 2 # [DEFAULT] 3 # ServerAliveInterval = 45 4 # Compression = yes 5 # CompressionLevel = 9 6 # ForwardX11 = yes 7 # 8 # [bitbucket.org] 9 # User = hg10 #11 # [topsecret.server.com]12 # Port = 5002213 # ForwardX11 = no14 15 #configparser使用的格式是:分为三段,每段相当于是一个字典的形式,然后字典里面在包含一个字典16 #生成文件的方法是17 #fang=configparser.ConfigParser()    #首先调用模块的对象,然后再赋值给一个对象18 #fang["DEFAULT"]={"key1":"vales1","key2':"vales2"........}19 #fang[ "自定义字典名称"]={"key1":"vales1","key2":'vales2".....}20 #fang["自定义字典名称2”]={"key1":"vales1","key2":vales2"......}21 #with open("要添加的路劲","w")as f:22 #   fang.write(f)23 24 # import configparser25 # #例如将下面内容写入到文件中26 # fang=configparser.ConfigParser()27 # fang["DEFAULT"]={
28 # "ServerAliveInterval" :45,29 # "Compression" :"yes",30 # "CompressionLevel" : 9,31 # "ForwardX11" : "yes"32 # }33 # fang["bitbucket.org"]={"User": "hg"}34 # fang["topsecret.server.com"]={"Port" : 50022,"ForwardX11" :"no"}35 # with open("yuan.txt","w")as f:36 # fang.write(f)37 ##创建的第一个字段名称必须是DEFAULT名称,后面创建的字段可以自定义名称,第一个字段创建的内容会在后面创建的每一个字段中自动添加上去。38 #39 # #操作文件:读与写操作40 # import configparser41 # jie=configparser.ConfigParser()42 # jie.read("yuan.txt")43 # print(fang.sections()) #查字段的信息44 #45 # import configparser46 # jie=configparser.ConfigParser()47 # jie.read("yuan.txt")48 # print('topsecret.server.com' in fang) #查看字段是否在该字典里49 #50 #51 # import configparser52 # jie=configparser.ConfigParser()53 # jie.read("yuan.txt")54 # print(fang.items("topsecret.server.com")) #取出某个字段的内容55 56 # import configparser57 #58 # config = configparser.ConfigParser()59 #60 # #---------------------------查找文件内容,基于字典的形式61 #62 # print(config.sections()) # []63 #64 # config.read('example.ini')65 #66 # print(config.sections()) # ['bitbucket.org', 'topsecret.server.com']67 #68 # print('bytebong.com' in config) # False69 # print('bitbucket.org' in config) # True70 #71 #72 # print(config['bitbucket.org']["user"]) # hg73 #74 # print(config['DEFAULT']['Compression']) #yes75 #76 # print(config['topsecret.server.com']['ForwardX11']) #no77 #78 #79 # print(config['bitbucket.org']) #
80 #81 # for key in config['bitbucket.org']: # 注意,有default会默认default的键82 # print(key)83 #84 # print(config.options('bitbucket.org')) # 同for循环,找到'bitbucket.org'下所有键85 #86 # print(config.items('bitbucket.org')) #找到'bitbucket.org'下所有键值对87 #88 # print(config.get('bitbucket.org','compression')) # yes get方法取深层嵌套的值89 #
View Code

十一 subpeocess   模块  命令模块

1 #调用系统的命令 2 # import subprocess 3 # 4 # #  创建一个新的进程,与主进程不同步  if in win: s=subprocess.Popen('dir',shell=True) 5 # s=subprocess.Popen('ls') 6 # s.wait()                  # s是Popen的一个实例对象 7 # 8 # print('ending...') 9 # import subprocess10 # s=subprocess.Popen("dir",shell=True)  #Popen是一个类,开启了新的进程,11 #print("ending")                                     #两个抢用CPU,看谁的速度快,就先打印谁12 13 # s=subprocess.Popen("dir",shell=True)  #制定谁先使用CPU14 # s.wait()15 # print("ending")16 17 # import subprocess18 # s=subprocess.Popen("Ls-L",shell=True)   #命令带参数19 20 #子进程的文本流控制21 #可以在Popen()建立子进程的时候改变标准输入、标准输出和标准错误,并可以利用subprocess.PIPE将多个22 #子进程的输入和输出连接在一起,构成管道(pipe):23 # import subprocess24 # s=subprocess.Popen("Ls-L",shell=True,stdout=subprocess.PIPE)25 # print(s.stdout.read())            #拿到一个字节26 #27 # import subprocess28 # s=subprocess.Popen("Ls-L",shell=True,stdout=subprocess.PIPE)29 # print(s.stdout.read().decode("gbk"))    #进行一个转换30 31 #当我们想要更个性化我们的需求的时候,就要转向Popen类,该类生成的对象用来代表子进程。刚才我们使用到了一个wait方法32 33 #此外,你还可以在父进程中对子进程进行其它操作:34 35 # s.poll() # 检查子进程状态36 # s.kill() # 终止子进程37 # s.send_signal() # 向子进程发送信号38 # s.terminate() # 终止子进程39 #40 # s.pid:子进程号41 42 '''43 subprocess.call()44 45 父进程等待子进程完成46 返回退出信息(returncode,相当于Linux exit code)47 48 49 subprocess.check_call()50 父进程等待子进程完成51 返回0,检查退出信息,如果returncode不为0,则举出错误subprocess.CalledProcessError,该对象包含52 有returncode属性,可用try…except…来检查53 54 55 subprocess.check_output()56 父进程等待子进程完成57 返回子进程向标准输出的输出结果58 检查退出信息,如果returncode不为0,则举出错误subprocess.CalledProcessError,该对象包含59 有returncode属性和output属性,output属性为标准输出的输出结果,可用try…except…来检查。60 61 62 '''
View Code

 十二  模块和包的调用

1 在同一个目录下调用模块

1 #创建模块1  2 def func():  3     print("func")  4   5 #创建模块2  6 x=10  7   8 def get():  9     print(x) 10  11 def set(): 12     global x 13     x=100 14  15 #创建模块3 16 print("fang  1") 17  18 def foo(): 19     print("foo") 20  21 def da(): 22     print("da") 23  24 x=100 25 print("fang 2") 26  27  28  29 #使用方法 30 # import sys 31 # 32 # print(sys.path)    #查看查找路径的顺序,将执行文件的目录路径插入到sys.path的第一个位置 33 # 34  35 #方式一   #推荐 36 #import fang1 37 # import fadng 38 #方式二 39 # import fang1,fadng 40  41  42  43 # fang1.foo() 44 # fadng.func() 45 #################调用过程 46 # import fang1    #第一次调用直接存到了内存 47 # import fang1   #第二次调用,不会在执行该模块,只是完成一次引用 48  49  50  51 #import的两个过程: 1 创建一个新的名称空间,2  执行被调用的模块 52  53  54 # import hui 55 # 56 # x=12 57 # 58 # print(hui.x)  #10 59 # hui.get()     #10 60 # hui.set() 61 # hui.get()    #100 62 # 63 # print(x)    #12 64 # 65 # import fadng as fang2    #修改模块的名字 66 # 67 # fang2.func() 68  69  70 #总结,每个模块都是独立的名称空间,定义在这个模块中的函数, 71 # 把这个模块的名称空间当做全局名称空间,这样我们在编写自己 72 # 的模块时,就不用担心我们定义在自己模块中全局变量会在被导入 73 # 时,与使用者的全局变量冲突 74  75 #import的使用在于同一个目录使用 76 #########################################from   。。。。import 。。。 77 #import fang1 78  79  80 # 自定义执行某个模块里的内容,可以多个同时进行 81 # from fang1 import x 82 # from fang1 import foo 83 # from fang1 import da 84 # print(x) 85 # foo() 86 # da() 87  88  89 #自定义执行某个模块的类容,多个同时可以被引用,上面的简写。 90 # from fang1 import x,foo,da 91 # print(x) 92 # foo() 93 # da() 94  95 #指定某个模块里的内容被引用,可以随时执行。相当于引用了一个变量 96 # #使用时要慎用 97 # from fang1 import * 98 # print(x) 99 # foo()100 # da()101 #102 103 # from fang1 import *104 # def foo():105 #     print("ok")106 # foo()107 108 # def foo():109 #     print("ok")110 # from fang1 import *111 #112 # foo()113 114 115 # from fang1 import *116 # x=12117 # print(x)118 119 # x=12120 # from fang1 import *121 #122 # print(x)
View Code

2  在同级目录下调用子模块

1 #创建模块1 2 def add(x,y): 3     print(x+y) 4  5  6 #创建模块2 7 import logging 8  9 def get_logger():10     logger=logging.getLogger()11     fh=logging.FileHandler("lei.txt")12     logger.addHandler(fh)13 14     return logger15 16 17 #导入模块的方法18 19 #包中模块的调用20 #组织模块的方式:包21 22 #在python中,包可以理解成一个文件夹,但是每一个文件夹必须要有一个__init__.py模块23 24 #包和文件夹的区别在于有没有__init__.py模块25 26 #from  包   import  模块名27 28 # from dong import  lei29 #30 # a=lei.get_logger()31 # a.error("error")32 #33 # from dong.ljr import aa34 # aa.add(2,5)
View Code

3 在两个同级目录下调用模块

1 #创建模块1 2 def add(x,y): 3     print(x+y) 4  5  6 #创建模块2 7 import logging 8  9 def get_logger():10     logger=logging.getLogger()11     fh=logging.FileHandler("lei.txt")12     logger.addHandler(fh)13 14     return logger15 16 17 18 #导入模块的方法19 import sys20 import os21 22 #路径给写死了23 #sys.path.append(r"E:\文本编辑器\pycharm\方杰\目录\模块2\jie\dong")24 25 print(__file__)    #打印当前执行目录的路径26 27 #     #上上级绝对路径  #上一级绝对路径    #当前绝对路径28 a_b=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#29 30 print(a_b)31 32 sys.path.insert(0,a_b)33 from lei import  get_logger34 35 a=get_logger()36 a.error("error")37 38 from ljr import aa39 aa.add(2,5)
View Code

4 __name__

1 当前模块下 2 def foo(): 3     print("ok") 4 # 5 # 6 # def main(): 7 #     foo() 8 # 9 if __name__=="__main__":  #推荐添加上这种格式10     foo()11 #12 #print(__name__)13 14 #name 就是main15 16 17 18 调用的结果19 import name   #__name__在调用的时候打印的是当前模块的名称20 21 22 23 #在上级目录往下寻找包和模块的格式是24 #from   包.包   import 模块名字25 #或者是 from  包.包.模块   import 调用对象26 27 # from dong.ljr import aa28 # aa.add(2,5)29 #
View Code

 

转载于:https://www.cnblogs.com/fangjie0410/p/7062105.html

你可能感兴趣的文章
Hdu1754-线段树-单点更新
查看>>
asp.net mvc 4.0的部署
查看>>
WordPress资源站点推荐
查看>>
Python性能鸡汤
查看>>
android Manifest.xml选项
查看>>
Cookie/Session机制具体解释
查看>>
ATMEGA16 IOport相关汇总
查看>>
有意思的cmd命令
查看>>
js正則表達式语法
查看>>
VS2013 添加已有文件夹
查看>>
python 计时程序运行时间
查看>>
Git学习系列-Git基本概念
查看>>
c#多个程序集使用app.config 的解决办法
查看>>
Linux+Apache+PHP+MySQL服务器环境配置(CentOS篇)
查看>>
Linux下获取本机IP地址的代码
查看>>
(C#)调用Webservice,提示远程服务器返回错误(500)内部服务器错误
查看>>
flex布局
查看>>
python-----python的文件操作
查看>>
java Graphics2d消除锯齿,使字体平滑显示
查看>>
控件中添加的成员变量value和control的区别
查看>>