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())