python内置模块介绍(一)
本文主要介绍模块列表如下:
os模块
- os.getcwd() 获取当前工作目录
- os.chdir("/path/to") 将目录切换到/path/to目录,等价于shell中的cd命令
- os.makedirs('path1/path2') 创建多层目录(可以多层目录同时不存在),相当于shell中的mkdir -p 命令
- os.removedirs("path1/path2") 删除空目录,如果目录不空就会报错,首先删除path2目录,如果path1也变成空目录了,也会删除path1,知道所给目录的第一层(即示例中的path1)停止
- os.mkdir("path") 创建单层目录path,相当于shell中的mkdir,注:path目录所在的上一层目录必须已经存在
- os.rmdir("path") 删除单层目录path,相当于shell中的rmdir
- os.listdir("path") 列出指定目录下的所有文件和子目录,包括隐藏文件,返回值是列表
- os.remove("file") 删除单个文件
- os.rename("a","b") 重命名(文件或目录)
- os.stat("a") 获取a(文件或目录)的所有信息:返回值是一个os.stat_result类
- os.system("shell command") 运行shell命令,直接显示运行结果,返回值是程序执行成功的code,非shell运行结果的返回值,0代表成功,非0失败
os.path下方法
- os.path.abspath(path) 返回path的绝对路径
- os.path.realpath(path) 返回path的绝对路径,和abspath不同的是,如果path是一个连接,返回的是path所连接的绝对路径
- oa.path.split("path") 将path分割成目录和文件名,返回值是二元的元祖
- os.path.dirname("path") 返回path所在的目录
- os.path.basename("path") 返回path文件名
- os.path.exists("a") 如果a存在,返回True;如果a不存在,返回False;a可以是文件也可以是目录
- os.path.isabs("path") 如果path是绝对路径,返回True
- os.path.isfile("path") 如果path是一个存在的文件,返回True。否则返回False
- os.path.isdir("path") 如果path是一个存在的目录,则返回True。否则返回False
- os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
- os.path.getsize("a") 返回a的大小(如果a是文件,就是文件大小;如果a是目录,则是目录内inode列表所占空间,而不是目录内文件所占的空间大小;如果a是符号链接,是指链接文件的路径名的字节数)
- os.path.getatime("a") 返回a所指向的文件或者目录的最后访问时间
- os.path.gettime("a") 返回a所指向的文件或者目录的最后权限修改时间
- os.path.getmtime("a") 返回a所指向的文件或者目录的最后内容修改时间
没有小括号
- os.curdir 返回值是".",即当前目录的相对路径,注意:没有小括号
- os.pardir 返回值是"..", 即上一层目录的相对路径,注意:没有小括号
- os.sep 输出操作系统的路径分隔符,win下为"\\",Linux下为"/",没有小括号
- os.linesep 输出当前操作系统的行终止符,win下为"\t\n",Linux下为"\n",没有小括号
- os.pathsep 输出当前操作系统用于分割文件路径的字符串,没有小括号
- os.name 输出当前使用平台,win->'nt'; Linux->'posix'
- os.environ 获取系统环境变量,返回值是一个类,可以通过返回值的各种方法调用里面的值
sys模块
- sys.argv 命令行list数据,第一个元素是程序本身
- sys.exit(a) 退出程序,如果a是假则正常退出,如果真,则异常退出,并返回a(假可以是0,False,空字符串等;真则不是空的数据)
- sys.version 打印python解释程序的版本
- sys.path 返回模块的搜索路径,它对应的是一个list类型,可以通过list的方法进行修改
- sys.platform 返回操作系统的名称
- sys.stdout.write("a") 标准输出打印a(对应的还有stderr)
re模块
re模块的函数介绍
- re.match(pattern,string) 从头开始匹配
- re.search(pattern,string) 匹配(如果pattern增加了^,就和match功能一样)
- re.findall(pattern,string) 把所有匹配到的字符以 list形式 返回
- re.split(pattern,string) 将string按照pattern分割,返回列表,列表中的元素不包含pattern
- re.sub(pattern,replace,string) 将string中的pattern替换成replace
正则表达式符号含义
- "." 默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行
- "^" 匹配字符开头,若指定flags MULTILINE,这种(r"^a","\nabc\neee",flags=re.MULTILINE)也可以匹配上(不指定flags,"\nabc\neee"就是一行)
- "$" 匹配字符结尾,若指定flags MULTILINE,这种("foo$","bfoo\nsdfsf",flags=re.MULTILINE)也可以匹配上,同上
- "*" 匹配*号前的字符0次或多次
- "+" 匹配前一个字符1次或多次
- "?" 匹配前一个字符0次或1次
- "{m}" 匹配前一个字符m次
- "{m,n}" 匹配前一个字符m到n次(即最少m次,最多n次)
- "|" 匹配|左或|右的字符
- "(...)" 分组匹配,分组的顺序:从左到右,从外到内
- 分组还可以细分,普通分组,命名分组,后向引用,前向肯定断言,后向肯定断言,前向否定断言、后向否定断言
- 普通分组,则是通过1,2.....来获取匹配到信息,如re.search(r"(abc)","abcdefg").group(1)
- 命名分组,则是通过给分组命名来获取匹配到的信息,如
(?P<name>正则表达式),这里的命名就是name,通过groupdict("name")函数获取捕获值
- 其他用的不多
- [...] 匹配中扩内的人一个字符,如果中括号前加^(即[^]),代表匹配非中括号内任一个字符
- "\A" 只从字符开头匹配,re.search("\Aabc","alexabc") 是匹配不到的
- "\Z" 匹配字符结尾,同$
- "\d" 匹配数字[0-9]
- "\D" 匹配非数字
- "\w" 匹配[A-Za-z0-9]
- "\W" 匹配非[A-Za-z0-9]
- "\s" 匹配空白字符、\t、\n、\r
- "\S" 匹配\s的补集
- \d和\D,\w和\W,\s和\S每一对都是对方的补集,一起可以组成全部的字符
time模块
- 在time模块中有3中标示时间的方式:1.时间戳,2.格式化的时间字符串,3.元祖(struct_time,有9个元素)
- UTC(Coordinated Universal Time,协调世界时),世界标准时间,中国是UTC+8;DST(Daylight Saving Time)夏令时
- 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日0:00:00开始按秒计算的量
- 元祖(struct_time)有9个元素,tm_year:年份,tm_mon:月,tm_mday:日期,tm_hour:小时,tm_min:分钟,tm_sec:秒,tm_wday:星期中的第几天(周一用0表示),tm_yday:一年中的第几天,tm_isdst:是否为夏令时
函数介绍
time中各种类型时间的转换,引用:https://blog.51cto.com/egon09/1840425
- time.time() 当前的时间,类型是时间戳(timestamp)
- time.sleep(timestamp) 程序睡眠,单位秒
- time.gmtime([timestamp]) 类型为struct_time;不传递参数,当前utc的时间;如果传递参数,则为从1970年1月1日0:00:00经过timestamp时间后的utc时间
- time.localtime([timestamp]) 类型为struct_time;不传参数,是当前本地的时间;如果传递参数,则为从1970年1月1日0:00:00经过timestamp时间后的本地时间
- time.asctime([struct_time]) 类型为字符串,格式为"'Wed Jul 17 08:40:40 2019'"”;不传递参数,解析当前时间;传递参数,解析参数时间
- time.ctime([timestamp]) 类型为字符串,格式为"'Wed Jul 17 08:40:40 2019'"”;不传递参数,解析当前时间;传递参数,解析参数时间(和上面不同给的是传递参数类型不同)
- time.strptime(string,format) 返回struct_time类型,将string按照format解析,format格式下面介绍
- time.strftime(format[,tuple] 返回字符串,将时间按照format形式转换为字符串格式,没有指定tuple time,则默认使用localtime
- %y 两位数的年份表示(00-99)
- %Y 四位数的年份表示(000-9999)
- %m 月份(01-12)
- %d 月内中的一天(0-31)
- %H 24小时制小时数(0-23)
- %I 12小时制小时数(01-12)
- %M 分钟数(00-59)
- %S 秒(00-59)
- %a 本地简化星期名称
- %A 本地完整星期名称
- %b 本地简化的月份名称
- %B 本地完整的月份名称
- %c 本地相应的日期表示和时间表示,返回和time.ctime一样
- %j 年内的一天(001-366)
- %p 本地A.M.或P.M.的等价符
- %U 一年中的星期数(00-53)星期天为星期的开始
- %w 星期(0-6),星期天为星期的开始
- %W 一年中的星期数(00-53)星期一为星期的开始
- %x 本地相应的日期表示
- %X 本地相应的时间表示
- %Z 当前时区的名称 # 乱码
- %% %号本身
datetime模块
- datetime.dateime.now() 返回当前时间,类型是 datetime.datetime,
- datetime.timedelta() 这个函数不单独使用,要配合now函数,对时间进行加减,比如:datetime.dateime.now() + datetime.timedelta(-3)
- timedelta的参数有:days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0
日期的函数还有calendar(日历)模块,详细见:https://docs.python.org/3/library/calendar.html
random模块
- random.random() 返回浮点型数字,区间为[0.0 1)---不包含1
- random.uniform(a,b) 返回浮点型数字,可自定义区间,[a,b)
- random.int(a,b) 返回整数,区间为[a,b]
- random.randrange(a,b) 返回整数,区间[a,b)区间性质和range函数一样
- random.choice(seq) 返回seq中的一个元素
- random.shuffle(x) 对x重新洗牌,即打乱顺序,x是一个列表
shutil模块shutil
高级的文件,文件夹处理
- shutil.copyfilebj(src,dst) 拷贝文件对象,src和dst必须是文件句柄(即open后的文件句柄)
- shutil.copyfile(src,dst) 拷贝文件,src和dst是文件名称(调用copyfilebj来实现的)
- shutil.copymode(src,dst) 拷贝文件权限,内容、组、用户均不变,src和dst都是文件,且必须存在
- shutil.copystat(src,dst) 拷贝文件的状态信息,包括mode,atime,ctime,flags等
- shutil.copy(src,dst) 拷贝文件和权限,src和dst都是文件
- shutil.copy2(src,dst) 拷贝文件和状态,src和dst都是文件
- shutil.copytree(src,dst) 递归拷贝文件
- shutil.rmtree(path) 递归删除文件
- shutil.move(src,dst) 递归移动文件
subprocess模块
直接运行推荐使用run方法,如果使用更高级的可以直接使用Popen接口;如果想得到程序运行结果,推荐使用getstatusoutput(cmd)
subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None)
- args:标示要执行的命令,必须是一个字符串,字符串参数需要是列表形式,如果shell参数这只为true,那么可以将参数和命令放到一个字符串中,因为它是通过系统的shell执行
- 比如:如果有参数,必须是["ls","-al"],没有参数可以写"ls";如果shell为True,可以写成“ls -a”
- stdin、stdout 和 stderr:子进程的标准输入、输出和错误。其值可以是 subprocess.PIPE、subprocess.DEVNULL、一个已经存在的文件描述符、已经打开的文件对象或者 None。subprocess.PIPE 表示为子进程创建新的管道。subprocess.DEVNULL 表示使用 os.devnull。默认使用的是 None,表示什么都不做。另外,stderr 可以合并到 stdout 里一起输出。
- timeout:设置命令超时时间。如果命令执行时间超时,子进程将被杀死,并弹出 TimeoutExpired 异常。
- check:如果该参数设置为 True,并且进程退出状态码不是 0,则弹 出 CalledProcessError 异常。
- encoding: 如果指定了该参数,则 stdin、stdout 和 stderr 可以接收字符串数据,并以该编码方式编码。否则只接收 bytes 类型的数据。
- shell:如果该参数为 True,将通过操作系统的 shell 执行指定的命令。
- args:标示要执行的命令,必须是一个字符串,字符串参数需要是列表形式,如果shell参数这只为true,那么可以将参数和命令放到一个字符串中,因为它是通过系统的shell执行
- subprocess.getstatusoutput(cmd) 返回值是一个二元元组,第一个是exitcode(0代表运行成功,其他代表失败),第二个是运行cmd返回的结果
- 类似的还有一个函数subprocess.getoutput(cmd) 只返回运行的结果
剩余部分请参考:python内置模块介绍(二)
python内置模块介绍(一)的更多相关文章
- python内置模块collections介绍
目录 python内置模块collections介绍 1.namedtuple 2.deque 3.defaultdict 4.OrderedDict 5.ChainMap 6.Counter 7.小 ...
- python内置模块(4)
这一部分是python内置模块系列的最后一部分,介绍了一些小巧有用的内置模块. 目录: 1.random 2.shelve 3.getpass 4.zipfile 5.tarfile 6.bisect ...
- python内置模块[re]
python内置模块[re] re模块: python的re模块(Regular Expression正则表达式)提供各种正则表达式的匹配操作,在文本解析.复杂字符串分析和信息提取时是一个非常有用的工 ...
- python 内置模块续(二)
目录 python 内置模块补充 1.hashlib模块 简易使用: 高级使用: 进阶使用: 加盐处理: 校验文件一致性 2.logging日志模块 日志等级 常用处理 "四大天王" ...
- 从零开始学Python第0周:Python基本介绍(部分内容来源于网络)
Python入门介绍 一,Python的基本介绍 (1)概要 Python是一种解释型,面向对象,动态数据类型的高级程序设计语言.常被广泛用于处理系统管理任务和web编程.现如今Python已经成为了 ...
- 【转】Python Twisted介绍
Python Twisted介绍 作者:Jessica McKellar 原文链接 Twisted是用Python实现的基于事件驱动的网络引擎框架.Twisted诞生于2000年初,在当时的网络游戏开 ...
- 【美妙的Python之中的一个】Python简单介绍及环境搭建
美妙的Python之Python简单介绍及安装 简而言之: Python 是能你无限惊喜的语言,与众不同. 1.Python: ...
- python模块介绍- multi-mechanize 性能测试工具
python模块介绍- multi-mechanize 性能测试工具 2013-09-13 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 3739 ...
- python模块介绍- xlwt 创建xls文件(excel)
python模块介绍- xlwt 创建xls文件(excel) 2013-06-24磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq 37391319 ...
随机推荐
- 利用原生JS实时监听input框输入值
传送门https://www.cnblogs.com/lantinggumo/p/7636715.html 传送门https://www.cnblogs.com/nailc/p/8572226.htm ...
- CSS(1)
使用CSS的注意点: 1.style标签必须写在head标签的开始标签和结束标签之间(也就是必须和title标签是兄弟关系). 2.style标签中的type属性其实可以不用写,默认就是type=&q ...
- 范仁义html+css课程---1、html基本结构
范仁义html+css课程---1.html基本结构 一.总结 一句话总结: html标签中包含head标签和body标签,head标签里面主要写用户不可见的内容,比如字符集编码,body标签里面主要 ...
- 新零售下的 AI智能货柜
公司有个智能货柜,通过微信扫码开门,拿货,自动扣款,挺智能的.还不错.研究一下原理,网上查了一下. 文章简介: 目前新零售风刮的蛮大,笔者进入该领域近一年,负责过无人便利店.智能货柜.智慧商超等产品, ...
- 常忘知识点三-使用选择器继承来精简CSS --- @extend
推荐一个很详细的sass教程:https://www.sass.hk/docs/ 在设计网页的时候常常遇到这种情况:一个元素使用的样式与另一个元素完全相同,但又添加了额外的样式.通常会在 HTML 中 ...
- window TOMCAT 端口被占用了怎么办?
查看80端口被哪些程序占用了 netstat -ano|findstr "80" 根据pid(进程id) 查询对应的应用程序 tasklist|findstr "1828 ...
- matlab基本函数sort
一起来学演化计算-matlab基本函数sort 觉得有用的话,欢迎一起讨论相互学习~Follow Me sort 对数组元素排序 语法 B = sort(A) 按照大小不等于1的第一个数组维度对A的元 ...
- WAV相关:从PCM16 Little Endian数据转WAV文件
数据格式 [0.0, -0.0, -0.0, 0.0, 0.0, 0.0, 5.960464477539063e-08, 5.960464477539063e-08, 1.19209289550781 ...
- 将WPF转为PDF
https://blog.csdn.net/xgugu1210/article/details/51878104 https://www.cnblogs.com/zeoy/archive/2013/0 ...
- 【 argo 和 kubectl 】
argo submit --watch xxx.yaml [ --kubeconfig xxx.conf --namespace xxx ] argo list [ --kubeconfig xxx ...