pyton 内置模块

it2024-11-23  18

os模块 os.makedirs(‘dirname1/dirname2’) 可生成多层递归目录 os.removedirs(‘dirname1’) 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推 os.mkdir(‘dirname’) 生成单级目录;相当于shell中mkdir dirname os.rmdir(‘dirname’) 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname os.listdir(‘dirname’) 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印 os.remove() 删除一个文件 os.rename(“oldname”,“newname”) 重命名文件/目录 os.stat(‘path/filename’) 获取文件/目录信息 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir(“dirname”) 改变当前脚本工作目录;相当于shell下cd

os.path模块

os.path.abspath(path) 返回path规范化的绝对路径 os.path.split(path) 将path分割成目录和文件名二元组返回 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False 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.getatime(path) 返回path所指向的文件或者目录的最后访问时间 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间 os.path.getsize(path) 返回path的大小

random模块

1、random() -产生大于0且小于1之间的小数 import random ret=random.random() print(ret)

2、uniform(a,b) -产生指定范围的随机小数 import random ret=random.uniform(1,4) print(ret)

3、randint(a,b) -产生a,b范围内的整数,包含开头和结尾 import random ret=random.randint(1,3) print(ret)

4、randrange(start,stop,[step]) -产生start,stop范围内的整数,包含开头不包含结尾。 -step 指定产生随机的步长。随机选择一个数据

import random ret=random.randrange(1,2) print(ret) ret1=random.randrange(1,6,2) print(ret1)

5、random.choice(lst) -随机返回序列中的一个数据

import random lst = [‘a’, ‘b’, ‘c’] ret = random.choice(lst) print(ret)

6、shuffle() -打乱列表顺序

lst = [‘a’, ‘b’, ‘c’] print(lst) random.shuffle(lst) print(lst)

time 模块:

1.时间戳

以整型或者浮点型表示的 是一个一秒为单位的时间间隔,这个时间的基础是1970年的1月1日零时开始算

2.格式化字符串

%a 本地简化星期名称

%A 本地完整星期名称

%b 本地简化月份名称

%B 本地完整月份名称

%c 本地相应的日期和时间表示

%d 一个月中第几天(01-31)

%H 一天中的第几个小时(24小时制度,00-23)

%I 一天中的第几个小时(12小时制度,01-12)

%j 一年中的第几天(001-366)

%m 月份(01-12)

%M 分钟数(00-59)

%p 本地am或者pm的相应符号

%S 秒(00-59)

%U 一年中的星期数,以星期日为一个星期

%w 一个星期中的第几天(0-6,0表示星期日)

%W 和%U基本相同,以星期一为一个星期

%x 本地相应日期

%X 本地相应时间

%y 去掉世纪的年份(00-99)

%Y 完整的年份

%Z 时区的名字,如果不存在未空字符串

方法:

time():返回当前的时间戳 t1 = time.time()

gmtime(): t2 = time.gmtime()

localtime(): t3 = time.localtime()

mktime(): t4 = time.mktime(t3)

asctime(): t5 = time.asctime(t3)

sleep():延迟一个时间段,整型或者浮点型

datetime模块

模块中的类:

datetime 同时有时间和日期

timedelta 主要用于计算时间跨度

tzinfo 时区相关

time 只关注时间

date 只关注日期

获取当前时间

t1 = datetime.datetime.now()

获取指定时间

t2 = datetime.datetime(199, 10, 1, 8, 8, 8, 0)

日历模块 calendar calendar.month(2018,8)返回某年某月

calendar.calendar(2018) 返回某一年的

calendar.isleap()判断是否是闰年

Counter():

Counter就是一个简单的计数器,本质上是dict的一个子类,对列表中字符串某个元素在列表中出现的数字统计,在对文章分析的时候这个会用到。

from collections import Counter a = “XiaoHa say hello world” c = Counter() print©#一个Counter类型的 for ch in a: c[ch] = c[ch] + 1 #对每个数据进行读取一遍,然后再对其进行赋值得到个数 print©

uuid模块: import uuid print(uuid.uuid1()) print(uuid.uuid4()) print(uuid.uuid3(uuid.NAMESPACE_DNS,“XiaoHa”)) print(uuid.uuid3(uuid.NAMESPACE_DNS,“XiaoHa”)) print(uuid.uuid3(uuid.NAMESPACE_DNS,“haha”)) print(uuid.uuid5(uuid.NAMESPACE_DNS, “XiaoHa”))

base64模块: 概念: 用记事本打开图片等文件会看到一堆乱码,是因为二进制文件包含很多无法显示的内容,所以想让记事本能处理二进制数据,就需要将二进制字符串转换。base64就是一种常见的二进制编码方式

原理: 一个包含64个字符的数组:[“a”-“z”,“A”-“Z”,“0”-“9”,"+","/"]

对二进制数组进行处理,没三个字节一组,一组就是24bit,划为4组,每组6bit,得到四个数字作为索引,然后查找对应的表,得到相应的四个字符,就是编码后的字符串,在末尾如果不够的话会使用=进行补位。

作用: 适用于小段内容的编码,比如数字证书签名,cookie,网页中传输的少量二进制数据。

注意:bsae64是一种通过查表的编码方式,不能用于加密。

import base64 #编码 s1 = b"hello world" print(base64.b64encode(s1)) #解码 s2 = b"aGVsbG8gd29ybGQ=" print(base64.b64decode(s2))

hashlib模块 提供了常见的摘要算法:如IMD5,SHA1

摘要算法: 又称哈希算法,散列算法。

原理: 它通过一个函数,把任意长度的数据转为一个长度固定的数据串(通常十六进制的字符串表示)

加密: MD5 s1 = b"XiaoHa is a good man" m5 = hashlib.md5() m5.updata(s1) print(m5.hexdigest())

hmac模块

import hmac s = b"XiaoHa is a good man" key = b"haha" h = hmac.new(key, s, digestmod = “MD5”) print(h.hexdigest())

最新回复(0)