python常用库
os库
os模块是python中整理文件和目录最常用的模块,该模块提供了非常丰富的方法来处理文件和目录
os.name:返回
操作系统的名字
。如windows返回'nt',Linux返回'posix'os.getcwd():获取当前工作的目录,返回
绝对路径
os.listdir(path):以
列表
形式列出path目录下所有的文件和目录名,默认
为本文件所在目录。不区分目录和文件os.remove(path):删除指定的文件,不能省略参数且
path不存在会报错
os.rmdir(path):删除path指定的目录,参数不能省略且
只能删除空目录
,否则会报错os.removedirs(path):删除多级空目录
os.mkdir(path):创建path指定的目录,如果文件夹
存在
就会报错,只能创建下一级目录os.makedirs(path):创建path指定的目录,如果文件夹存在就会报错,可以直接生成多层级目录
os.walk(path):深层次遍历指定路径下的所有子文件夹,返回一个由路径、文件夹列表、文件列表组成的元组
os.chdir(path):改变工作目录到指定目录
os.path模块
os.path.exists(path):判断path路径是否存在
os.path.isfile(path):判断path是否为文件
os.path.isdir(path):判断是否为目录
os.path.join(path1,path2):将两个路径字符串拼接起来,形成完成路径
os.path.split(path):传入一个完整的路径,拆分成
绝对路径
和文件名
元组形式os.path.dirname(path):传入完整文件路径,只返回绝对路径
os.path.basename(path):传入路径,只返回文件名
os.path.getsize(path):返回文件大小(字节)
os.path.abspath():获得绝对路径。
os.path.getmtime(path):文件或文件夹的最后修改时间,从新纪元到访问时的秒数。
os.path.getatime(path):文件或文件夹的最后访问时间,从新纪元到访问时的秒数。
os.path.getctime(path):文件或文件夹的创建时间,从新纪元到访问时的秒数。
pathlib库
pathlib是从python3开始就能完全替代os.path的内置库
pathlib和os.path的比较
当需要找多个层级的目录路径时,通过
os.path
需要嵌套写法,而``pathlib`可以提供链式写法os.path
只用与处理路径,如果你想创建一个目录,就得用os
,而pathlib
可以一站式搞定
Path.is_dir() # 判断是否是目录
Path.is_dir() # 是否是文件
Path.exists() # 判断路径是否存在
Path.open() # 打开文件(支持with)
Path.resolve() # 返回绝对路径
Path.cwd() # 返回当前目录
Path.iterdir() # 遍历目录的子目录或者文件
Path.mkdir() # 创建目录
Path.rename() # 重命名路径
Path.unlink() # 删除文件或目录(目录非空触发异常)
Path.joinpath() # 拼接路径
Path.parents # 返回所有上级目录的列表
Path.parts # 分割路径 类似os.path.split(), 不过返回元组
Path.root # 返回路径的根目录
time库
python中处理时间的最基础的库
time():获取当前时间戳,返回从新纪元到访问时的秒数
localtime(sec):返回sec到新纪元结构化时间,参数为时间戳,默认为本地时间
gmtime(sec):默认为世界时间
ctime():返回格式为‘星期 月份 日 时间 年份’
sleep(s):程序休眠,参数为秒
strftime(时间格式控制符,结构化时间):将时间格式输出为字符串
时间格式控制符说明%Y
四位数的年份
%m
月份(1-12)
%d
月份的一天(1-31)
%B
本地完整的月份名称,如January
%b
本地简化的月份名称,如Jan
%a
本地简化的周日期,如Mon-Sunday
%A
本地完整周日期
%H
24小时制小时数(0-23)
%I
12小时制小时数(1-12)
%p
上下午,曲志伟AM或PM
%M
分钟数(0-59)
%S
秒(0-59)
%j
返回当天是当年的第几天[1,366]
%U
返回当周是当年的第几周,以周日为第一天
%W
返回当周是当年的第几周,以周一为第一天
%w
当天在当周的天数[1-7]
%x
日期的字符串表示:03/08/15
%X
时间的字符串表示:23:22:08
%c
返回跟ctime()一样
re模块
re模块是python独有的匹配字符串的模块,但是很多功能是基于正则表达式实现的,所以re模块多用于正则匹配
re.I
忽略大小写
re.L
让\w,\W,\b,\B和区分大小写的匹配取决于当前的语言环境。该标志只能与字节模式一起使用。不建议使用此标志,因为语言环境机制非常不可靠,它一次只能处理一种“区域性”,并且仅适用于8位语言环境。默认情况下,Python 3中已为Unicode(str)模式启用了Unicode匹配,并且能够处理不同的语言环境/语言。
re.M
多行模式
re.S
使'.'特殊字符与任何字符都匹配,包括换行符;没有此标志,'.'将匹配除换行符以外的任何内容。(单行匹配)
常用方法
re.compile(pattern,flags=0)
将正则表达式模式编译为正则表达式对象,可使用match、search等方法进行匹配
# 生成正则对象 prog = re.compile('\d{2}') prog.search('12abc') prog.match('123abc') prog.search('12abc').group() # 通过调用group()方法得到匹配的字符串,如果字符串没有匹配,则返回None。match也一样 # group()返回整个字符串 # group(1)返回第一个被括号包裹的值 # 输出 <_sre.SRE_Match object; span=(0, 2), match='12'> <_sre.SRE_Match object; span=(0, 2), match='12'> '12'
re.search(pattern,string,flags)
扫描字符串以查找正则表达模式产生匹配项的第一个位置,然后返回match对象.
re.search('\w+','abcde').group() # 'abcde'
re.match(pattern,string,flags=0)
如果字符串开头的零个或多个字符与正则表达式模式匹配,则返回相应的匹配对象。
re.match('a','abcade').group() # 'a'
re.findall(pattern,string,flags=0)
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。注意**:** match 和 search 是匹配一次 findall 匹配所有。
import re ret = re.findall(r"\d+", "python = 9999, c = 7890, c++ = 12345") print(ret) # ['9999', '7890', '12345']
re.finditer()
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
import re it = re.finditer(r"\d+", "12a32bc43jf3") for match in it: print(match.group())
re.sub(pattern,repl,string,count=0,flags=0)
sub是substitute的所写,表示替换,将匹配到的数据进⾏替换。
参数描述pattern
必选,表示正则中的模式字符串
repl
必选,要替换的字符串,也可以为一个函数
string
必选,被替换的字符串
count
可选,要替换的最大次数,如果省略或为0,则全部被替换
flag
标志位
# 替换为字符串 import re ret = re.sub(r"\d+", '998', "python = 997") print(ret) # 替换为函数 import re def add(temp): #int()参数必须是字符串,类似字节的对象或数字,而不是“re.Match” strNum = temp.group() num = int(strNum) + 1 return str(num) ret = re.sub(r"\d+", add, "python = 997") print(ret) ret = re.sub(r"\d+", add, "python = 99") print(ret)
re.subn()
跟sub函数系统,但是返回一个元组
random随机数模块
seed(int)
生成一个随机数种子,用于同步不同运行环境的随机数
当产生随机数种子相同时,可以预测要生成的随机数
import random random.seed(44) print(random.randint(0,99)) random.seed(44) print(random.randint(2,99)) # 52 # 54
random()
生成一个[0,1)数字
uniform()
生成一个a,b区间的随机数
>> uniform(2.5,10.0)
3.1800146073117523
randrange(start,stop[,step])
整数随机,等同于choice(range(start,stop,step))
randint()
返回一个[a,b]的整数
choice()
返回对象中的一个随机元素
shuffle()
打乱序列
最后更新于