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

下载本文档

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

文档简介

1、python中常用的模块的总结1、 模块和包a.定义:模块用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py结尾的python文件。(例如:文件名:test.py,对应的模块名:test)包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个_init_.py的文件)b导入方法import module_nameimport module_1的本质:是将module_1解释了一遍也就是将module_1中的所有代码复制给了module_1from module_name1 import name本质是将module_name1中的name变量放到当前程序

2、中运行一遍所以调用的时候直接print(name)就可以打印出name变量的值代码例子:自己写的模块,其他程序调用,如下所示:模块module_1.py代码:复制代码1 name = dean2 def say_hello():3 print(hello %s %name)调用模块的python程序main代码如下:(切记调用模块的时候只需要import模块名不需要加.py)import module_1 #调用变量print(module_1.name) #调用模块中的方法module_1.say_hello()复制代码这样运行main程序后的结果如下:1 D:python35python.

3、exe D:/python培训/s14/day5/module_test/main.py2 dean3 hello dean4 5 Process finished with exit code 0import module_name1,module_name2from module_name import *(这种方法不建议使用)from module_name import logger as log(别名的方法)c.导入模块的本质就是把python文件解释一遍import module_name-module_name.py-module_name.py的路径-sys.path导入包的本

4、质就是执行该包下面的_init_.py关于导入包的一个代码例子:新建一个package_test包,并在该包下面建立一个test1.py的python程序,在package包的同级目录建立一个p_test.py的程序test1的代码如下:1 def test():2 print(int the test1)package_test包下的_init_.py的代码如下:1 #import test1 (理论上这样就可以但是在pycharm下测试必须用下面from .import test1)2 from . import test13 print(in the init)p_test的代码如下:1

5、 import package_test #执行_init_.py2 package_test.test1.test()这样运行p_test的结果:1 D:python35python.exe D:/python培训/s14/day5/p_test.py2 in the init3 int the test14 5 Process finished with exit code 0从上述的例子中也可以看出:导入包的时候其实是执行包下的_init_.py程序,所以如果想要调用包下面的python程序需要在包下的_init_.py导入包下面的程序2、模块的分类a 标准库b 开源模块c 自动以模块3

6、、时间模块time与datetimepython中常见的时间表示方法:a. 时间戳时间戳:从1970年1月1日00:00:00到现在为止一共的时间数(单位为秒) time.time()1472016249.393169 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,

7、 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_

8、mday=24, tm_hour=13, tm_min=39, tm_sec=42, tm_wday=2, tm_yday=237, tm_isdst=0) time.mktime(x)1472017182.0 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-

9、24 13:39:42 5) 可以将格式化的时间字符串转换为struct_time time.strptime(2016-08-24 14: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转换成Wed Aug 24 14:22:47 2016这种格式 xtime.struct_time(tm_year=2016, tm_mo

10、n=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)Wed Aug 24 14:22:47 2016 7)将时间戳装换成Wed Aug 24 14:22:47 2016格式 x = time.time() x1472019984.958831 time.ctime(x)Wed Aug 24 14:26:24 2016 复制代码 1 %a 本地(locale)简化星期名称 2 %A 本地完整星期名称 3 %b 本地简化月份名称 4 %B 本地完整

11、月份名称 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基本相同,不同

12、的是%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 ran

13、dom.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) a6, 3, 7, 4, 1, 8, 9, 2, 5 生成随机验证

14、码的例子:复制代码 1 import string 2 import random 3 a = .join(random.sample(string.ascii_lowercase,4) 4 print(a) 5 b = .join(random.sample(string.ascii_lowercase+string.digits,5) 6 print(b) 7 8 c = .join(random.sample(string.ascii_uppercase+string.digits+string.ascii_lowercase,4) 9 print(c)10 d =.join(rando

15、m.sample(string.ascii_letters+string.digits,4)11 print(d)复制代码运行结果如下:复制代码1 D:python35python.exe D:/python培训/s14/day5/验证码2.py2 tbdy3 6te4b4 Z2UA5 v8He6 7 Process finished with exit code 0复制代码5、os模块复制代码 1 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 2 os.chdir(dirname) 改变当前脚本工作目录;相当于shell下cd 3 os.curdir 返回当

16、前目录: (.) 4 os.pardir 获取当前目录的父目录字符串名:(.) 5 os.makedirs(dirname1/dirname2) 可生成多层递归目录 6 os.removedirs(dirname1) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 7 os.mkdir(dirname) 生成单级目录;相当于shell中mkdir dirname 8 os.rmdir(dirname) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname 9 os.listdir(dirname) 列出指定目录下的所有文件和子目录,包

17、括隐藏文件,并以列表方式打印10 os.remove() 删除一个文件11 os.rename(oldname,newname) 重命名文件/目录12 os.stat(path/filename) 获取文件/目录信息13 os.sep 输出操作系统特定的路径分隔符,win下为,Linux下为/14 os.linesep 输出当前平台使用的行终止符,win下为tn,Linux下为n15 os.pathsep 输出用于分割文件路径的字符串16 输出字符串指示当前使用平台。win-nt; Linux-posix17 os.system(bash command) 运行shell命令,

18、直接显示18 os.environ 获取系统环境变量19 os.path.abspath(path) 返回path规范化的绝对路径20 os.path.split(path) 将path分割成目录和文件名二元组返回21 os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素22 os.path.basename(path) 返回path最后的文件名。如何path以或结尾,那么就会返回空值。即os.path.split(path)的第二个元素23 os.path.exists(path) 如果path存在,返回True;如果pa

19、th不存在,返回False24 os.path.isabs(path) 如果path是绝对路径,返回True25 os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False26 os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False27 os.path.join(path1, path2, .) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略28 os.path.getatime(path) 返回path所指向的文件或者目录的最后存取时间29 os.path.getmtime(path) 返

20、回path所指向的文件或者目录的最后修改时间复制代码6、 sys模块复制代码1 sys.argv 命令行参数List,第一个元素是程序本身路径2 sys.exit(n) 退出程序,正常退出时exit(0)3 sys.version 获取Python解释程序的版本信息4 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值5 sys.platform 返回操作系统平台名称6 sys.stdout.write(please:)复制代码7、shutil模块复制代码1 import shutil2 3 a = open(a.txt,r,encoding=utf-8)4 b

21、 = open(b.txt,w,encoding=utf-8)5 6 shutil.copyfileobj(a,b)复制代码运行够会复制一个文件b,将a文件中的内容复制到b文件中shutil.copyfile(b.txt,c.txt)直接复制b.txt到c.txtshutil.copymode(src,dst) 仅拷贝权限。内容,组,用户均不变shutil.copystat(src,dst)拷贝状态的信息shutil.copytree(src,dst,symlinks=false,ignore=none) 递归拷贝文件shutil.rmtree(path,ignore_errors,onerr

22、or)shutil.move(sr,dst)递归移动文件8、用于序列化的两个模块json&picklejson,用于字符串 和 python数据类型间进行转换pickle,用于python特有的类型 和 python的数据类型间进行转换Json模块提供了四个功能:dumps、dump、loads、loadpickle模块提供了四个功能:dumps、dump、loads、load9、 关于shelve模块代码例子:复制代码 1 #AUTHOR:FAN 2 import shelve 3 import datetime 4 5 d = shelve.open(shelve_test) 6 7 in

23、fo = name:dean,job:it,age:23 8 9 dname=infoname10 djob=infojob11 ddate=datetime.datetime.now()12 d.close()复制代码运行结果,会生成如下三个文件取出上述存的数据的代码如下:1 d = shelve.open(shelve_test)2 print(d.get(name)3 print(d.get(job)4 print(d.get(date)运行结果如下:复制代码1 D:python35python.exe D:/python培训/s14/day5/shelve模块/shelve_test.

24、py2 dean3 it4 2016-08-24 16:04:13.3254825 6 Process finished with exit code 0复制代码10、正则re模块复制代码 1 . 默认匹配除n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 2 匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(ra,nabcneee,flags=re.MULTILINE) 3 $ 匹配字符结尾,或e.search(foo$,bfoonsdfsf,flags=re.MULTILINE).group()也可以 4 * 匹配*号前的字符0次或多次,re

25、.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(ab1,3,abb abc abbcbbb) 结果abb, ab, abb 9 | 匹配|左或|右的字符,re.search(abc|ABC,ABCBabcCD).group() 结果ABC10 (.) 分组匹配,re.search(abc)2a(123|456)c, abcabca

26、456c).group() 结果 abcabca456c11 12 13 A 只从字符开头匹配,re.search(Aabc,alexabc) 是匹配不到的14 Z 匹配字符结尾,同$15 d 匹配数字0-916 D 匹配非数字17 w 匹配A-Za-z0-918 W 匹配非A-Za-z0-919 s 匹配空白字符、t、n、r , re.search(s+,abtc1n3).group() 结果 t20 S 匹配非空白字符复制代码r代表取消引号里面特殊字符的意义最常用的匹配语法:re.match从头开始匹配re.search匹配包含re.findall把所有匹配到的字符放到以列表中的元素返回r

27、e.splitall以匹配到的字符当做列表分隔符re.sub匹配字符并替换下面是关于正则的例子帮助理解:复制代码 1 re.match(zhao,zhaofan123) 2 3 re.match(ww,zhaofan123) 4 5 从这里也可以看出,如果有返回则表示匹配到了,否则则是没有匹配到 6 res = re.match(zhao,zhaofan123) 7 res 8 9 res.group() #如果想要查看匹配的内容.group() 10 zhao 11 12 匹配zhao后面以及数字 13 res = re.match(zhaod,zhao2323fan123) 14 res.

28、group() 15 zhao2 16 匹配多个数字 17 res = re.match(zhaod+,zhao2323fan123) 18 res.group() 19 zhao2323 20 21 22 查找特定字符 23 re.search(f.+n,zhao2323fan123) 24 25 26 re.search(f.+n,zhao2323fan123n) 27 28 29 30 re.search(fa-z+n,zhao2323fan123n) 31 32 33 $是匹配到字符串的最后 34 re.search(#.+#,1234#hello#) 35 36 37 re.search(aa?,zhaaaofan) 38 39 re.search(aaa?,zhaaaofan) 40 41 42 re.search(aaa?,zhaaofan) 43 44 45 46 47 re.search(aaa?

温馨提示

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

评论

0/150

提交评论