python中常用地模块地总结材料_第1页
python中常用地模块地总结材料_第2页
python中常用地模块地总结材料_第3页
python中常用地模块地总结材料_第4页
python中常用地模块地总结材料_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

wordword/word1、模块和包a.定义:模块用来从逻辑上组织python代码〔变量,函数,类,逻辑:实现一个功能〕,本质就是.py结尾的python文件。〔例如:文件名:test.py,对应的模块名:test〕包:用来从逻辑上组织模块的,本质就是一个目录〔必须带有一个__init__.py的文件〕b.导入方法importmodule_nameimportmodule_1的本质:是将module_1解释了一遍也就是将module_1中的所有代码复制给了module_1frommodule_name1importname本质是将module_name1中的name变量放到当前程序中运行一遍所以调用的时候直接print(name)就可以打印出name变量的值代码例子:自己写的模块,其他程序调用,如下所示:模块module_1.py代码:复制代码1name="dean"2defsay_hello():3print("hello%s"%name)调用模块的python程序main代码如下:〔切记调用模块的时候只需要import模块名不需要加.py〕importmodule_1#调用变量print(module_1.name)#调用模块中的方法module_1.say_hello()复制代码这样运行main程序后的结果如下:2dean3hellodean45Processfinishedwithexitcode0importmodule_name1,module_name2frommodule_nameimport*(这种方法不建议使用)frommodule_nameimportloggeraslog(别名的方法)导入包的本质就是执行该包下面的关于导入包的一个代码例子:新建一个test1的代码如下:1deftest():2print("intthetest1")package_test包下的__init__.py的代码如下:1#importtest1〔理论上这样就可以但是在pycharm下测试必须用下面from.importtest1〕2from.importtest13print("intheinit")p_test的代码如下:2package_test.test1.test()这样运行p_test的结果:2intheinit3intthetest145Processfinishedwithexitcode0从上述的例子中也可以看出:导入包的时候其实是执行包下的2、模块的分类a.标准库b.开源模块c.自动以模块3、时间模块time与datetimepython中常见的时间表示方法:a.时间戳时间戳:从1970年1月1日00:00:00到现在为止一共的时间数〔单位为秒〕>>>time.time()>>>b.格式化的时间字符串c.struct_time(元组)相互之间的转换关系如下:1〕time.localtime()将时间戳转换为当前时间的元组>>>time.localtime()time.struct_time(tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=13,tm_min=27,tm_sec=55,tm_wday=2,tm_yday=237,tm_isdst=0)>>>2〕time.gmtime()将时间戳转换为当前时间utc时间的元组>>>time.gmtime()time.struct_time(tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=5,tm_min=35,tm_sec=43,tm_wday=2,tm_yday=237,tm_isdst=0)>>>3〕time.mktime()可以将struct_time转换成时间戳>>>x=time.localtime()>>>xtime.struct_time(tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=13,tm_min=39,tm_sec=42,tm_wday=2,tm_yday=237,tm_isdst=0)>>>time.mktime(x)>>>4〕将struct_time装换成格式化的时间字符串>>>xtime.struct_time(tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=13,tm_min=39,tm_sec=42,tm_wday=2,tm_yday=237,tm_isdst=0)>>>time.strftime("%Y-%m-%d%H:%M:%S",x)'2016-08-2413:39:42'>>>5〕可以将格式化的时间字符串转换为struct_time>>>time.strptime("2016-08-2414:05:32","%Y-%m-%d%H:%M:%S")time.struct_time(tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=14,tm_min=5,tm_sec=32,tm_wday=2,tm_yday=237,tm_isdst=-1)>>>6〕将struct_time转换成WedAug2414:22:472016这种格式>>>xtime.struct_time(tm_year=2016,tm_mon=8,tm_mday=24,tm_hour=14,tm_min=22,tm_sec=47,tm_wday=2,tm_yday=237,tm_isdst=0)>>>time.asctime(x)'WedAug2414:22:472016'>>>7〕将时间戳装换成WedAug2414:22:472016格式>>>x=time.time()>>>x>>>time.ctime(x)'WedAug2414:26:242016'>>>复制代码1%a本地〔locale〕简化星期名称2%A本地完整星期名称3%b本地简化月份名称4%B本地完整月份名称5%c本地相应的日期和时间表示6%d一个月中的第几天〔01-31〕7%H一天中的第几个小时〔24小时制,00-23〕8%I第几个小时〔12小时制,01-12〕9%j一年中的第几天〔001-366〕10%m月份〔01-12〕11%M分钟数〔00-59〕12%p本地am或者pm的相应符13%S秒〔01-61〕14%U一年中的星期数。〔00-53星期天是一个星期的开始。〕第一个星期天之前的所有天数都放在第0周。15%w一个星期中的第几天〔0-6,0是星期天〕16%W和%U根本一样,不同的是%W以星期一为一个星期的开始。17%x本地相应日期18%X本地相应时间19%y去掉世纪的年份〔00-99〕20%Y完整的年份21%Z时区的名字〔如果不存在为空字符〕22%%‘%’字符复制代码datetime当前时间:datetime.datetime.now()1、随机模块randomrandom.randint(1,3)如此可以取出随机1-3random.randrange(1,3)随机从围所与random.choice()传递的参数是序列包括字符串列表等>>>random.choice("hello")'l'>>>random.choice("hello")'o'>>>random.choice("hello")'e'>>>>>>random.choice(["我","爱","你"])'我'>>>random.choice(["我","爱","你"])'你'>>>random.choice(["我","爱","你"])'你'>>>random.choice(["我","爱","你"])'爱'>>>random.sample〔〕随机从前面的序列取出两位>>>random.sample("hello",2)['l','o']>>>random.sample("hello",2)['h','l']>>>random.sample("hello",2)['h','o']>>>random的洗牌功能:>>>a=[1,2,3,4,5,6,7,8,9]>>>random.shuffle(a)>>>a[6,3,7,4,1,8,9,2,5]>>>生成随机验证码的例子:复制代码1importstring2importrandom3a="".join(random.sample(string.ascii_lowercase,4))4print(a)5b="".join(random.sample(string.ascii_lowercase+string.digits,5))6print(b)78c="".join(random.sample(string.ascii_uppercase+string.digits+string.ascii_lowercase,4))9print(c)10d="".join(random.sample(string.ascii_letters+string.digits,4))11print(d)复制代码运行结果如下:复制代码2tbdy36te4b4Z2UA5v8He67Processfinishedwithexitcode0复制代码5、os模块复制代码1os.getcwd()获取当前工作目录,即当前python脚本工作的目录路径2os.chdir("dirname")改变当前脚本工作目录;相当于shell下cd3os.curdir返回当前目录:('.')4os.pardir获取当前目录的父目录字符串名:('..')5os.makedirs('dirname1/dirname2')可生成多层递归目录6os.removedirs('dirname1')假如目录为空,如此删除,并递归到上一级目录,如假如也为空,如此删除,依此类推7os.mkdir('dirname')生成单级目录;相当于shell中mkdirdirname8os.rmdir('dirname')删除单级空目录,假如目录不为空如此无法删除,报错;相当于shell中rmdirdirname9os.listdir('dirname')列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印10os.remove()删除一个文件11os.rename("oldname","newname")重命名文件/目录12os.stat('path/filename')获取文件/目录信息13os.sep输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"14os.linesep输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"15os.pathsep输出用于分割文件路径的字符串16输出字符串指示当前使用平台。win->'nt';Linux->'posix'17os.system("bashmand")运行shell命令,直接显示18os.environ获取系统环境变量19os.path.abspath(path)返回path规化的绝对路径20os.path.split(path)将path分割成目录和文件名二元组返回21os.path.dirname(path)返回path的目录。其实就是os.path.split(path)的第一个元素22os.path.basename(path)返回path最后的文件名。如何path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素23os.path.exists(path)如果path存在,返回True;如果path不存在,返回False24os.path.isabs(path)如果path是绝对路径,返回True25os.path.isfile(path)如果path是一个存在的文件,返回True。否如此返回False26os.path.isdir(path)如果path是一个存在的目录,如此返回True。否如此返回False27os.path.join(path1[,path2[,...]])将多个路径组合后返回,第一个绝对路径之前的参数将被忽略28os.path.getatime(path)返回path所指向的文件或者目录的最后存取时间29os.path.getmtime(path)返回path所指向的文件或者目录的最后修改时间复制代码6、sys模块复制代码1sys.argv命令行参数List,第一个元素是程序本身路径2sys.exit(n)退出程序,正常退出时exit(0)3sys.version获取Python解释程序的版本信息4sys.path返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值5sys.platform返回操作系统平台名称6sys.stdout.write('please:')复制代码7、shutil模块复制代码1importshutil23a=open("a.txt","r",encoding="utf-8")4b=open("b.txt","w",encoding="utf-8")56shutil.copyfileobj(a,b)复制代码运行够会复制一个文件b,将a文件中的容复制到b文件中shutil.copymode(src,dst)仅拷贝权限。容,组,用户均不变shutil.copystat(src,dst)拷贝状态的信息shutil.copytree(src,dst,symlinks=false,ignore=none)递归拷贝文件shutil.rmtree(path[,ignore_errors[,onerror]])shutil.move(sr,dst)递归移动文件8、用于序列化的两个模块json&picklejson,用于字符串和python数据类型间进展转换pickle,用于python特有的类型和python的数据类型间进展转换Json模块提供了四个功能:dumps、dump、loads、loadpickle模块提供了四个功能:dumps、dump、loads、load9、关于shelve模块代码例子:复制代码1#AUTHOR:FAN2importshelve3importdatetime45d=shelve.open("shelve_test")67info={"name":"dean","job":"it","age":23}89d["name"]=info["name"]10d["job"]=info["job"]11d["date"]=datetime.datetime.now()12d.close()复制代码运行结果,会生成如下三个文件取出上述存的数据的代码如下:1d=shelve.open("shelve_test")2print(d.get("name"))3print(d.get("job"))4print(d.get("date"))运行结果如下:复制代码2dean3it56Processfinishedwithexitcode0复制代码10、正如此re模块复制代码1'.'默认匹配除\n之外的任意一个字符,假如指定flagDOTALL,如此匹配任意字符,包括换行2'^'匹配字符开头,假如指定flagsMULTILINE,这种也可以匹配上(r"^a","\nabc\neee",flags=re.MULTILINE)3'$'匹配字符结尾,或e.search("foo$","bfoo\nsdfsf",flags=re.MULTILINE).group()也可以4'*'匹配*号前的字符0次或屡次,re.findall("ab*","cabb3abcbbac")结果为['abb','ab','a']5'+'匹配前一个字符1次或屡次,re.findall("ab+","ab+cd+abb+bba")结果['ab','abb']6'?'匹配前一个字符1次或0次7'{m}'匹配前一个字符m次8'{n,m}'匹配前一个字符n到m次,re.findall("ab{1,3}","abbabcabbcbbb")结果'abb','ab','abb']9'|'匹配|左或|右的字符,re.search("abc|ABC","ABCBabcCD").group()结果'ABC'10'(...)'分组匹配,re.search("(abc){2}a(123|456)c","abcabca456c").group()结果abcabca456c111213'\A'只从字符开头匹配,re.search("\Aabc","alexabc")是匹配不到的14'\Z'匹配字符结尾,同$15'\d'匹配数字0-916'\D'匹配非数字17'\w'匹配[A-Za-z0-9]18'\W'匹配非[A-Za-z0-9]19'\s'匹配空白字符、\t、\n、\r,re.search("\s+","ab\tc1\n3").group()结果'\t'20'\S'匹配非空白字符复制代码r代表取消引号里面特殊字符的意义最常用的匹配语法:下面是关于正如此的例子帮助理解:复制代码1>>>re.match("^zhao","zhaofan123")2<_sre.SRE_Matchobject;span=(0,4),match='zhao'>3>>>re.match("^ww","zhaofan123")4>>>5从这里也可以看出,如果有返回如此表示匹配到了,否如此如此是没有匹配到6>>>res=re.match("^zhao","zhaofan123")7>>>res8<_sre.SRE_Matchobject;span=(0,4),match='zhao'>9>>>res.group()#如果想要查看匹配的容.group()10'zhao'11>>>12匹配zhao后面以与数字13>>>res=re.match("^zhao\d","zhao2323fan123")14>>>res.group()15'zhao2'16匹配多个数字17>>>res=re.match("^zhao\d+","zhao2323fan123")18>>>res.group()19'zhao2323'20>>>2122查找特定字符23>>>re.search("f.+n","zhao2323fan123")24<_sre.SRE_Matchobject;span=(8,11),match='fan'>25>>>26>>>re.search("f.+n","zhao2323fan123n")27<_sre.SRE_Matchobject;span=(8,15),match='fan123n'>28>>>2930>>>re.search("f[a-z]+n","zhao2323fan123n")31<_sre.SRE_Matchobject;span=(8,11),match='fan'>32>>>33$是匹配到字符串的最后34>>>re.search("#.+#","1234#hello#")35<_sre.SRE_Matchobject;span=(4,11),match='#hello#'>36>>>37>>>re.search("aa?","zhaaaofan")38<_sre.SRE_Matchobject;span=(2,4),match='aa'>39>>>re.search("aaa?","zhaaaofan")40<_sre.SRE_Matchobject;span=(2,5),match='aaa'>41>>>42>>>re.search("aaa?","zhaaofan")43<_sre.SRE_Matchobject;span=(2,4),match='aa'>44>>>4546<_sre.SRE_Matchobject;span=(2,5),match='aaa'>47>>>re.search("aaa?","zhaaofaaan")48<_sre.SRE_Matchobject;span=(2,4),match='aa'>49>>>re.search("aaa?","zhaofaaan")50<_sre.SRE_Matchobject;span=(5,8),match='aaa'>51>>>re.search("aaa?","zhaaofaaan")52<_sre.SRE_Matchobject;span=(2,4),match='aa'>53从上面可以很好的理解?是匹配前一个字符0次或者1次54通俗的说就是aa后面有1个或者没有a都可以匹配到55>>>re.search("[0-9]{3}","aaax234sdfaass22s")56<_sre.SRE_Matchobject;span=(4,7),match='234'>57>>>58匹配数字3次59>>>re.search("[0-9]{3}","aaax234sdfaass22s")60<_sre.SRE_Matchobject;span=(4,7),match='234'>61>>>62匹配数字1次到3次63>>>r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论