在python中有许多模块,需要用时必须导入模块:import 模块名
导入模块中的小模块
import 模块名
from 模块名 import 小模块名
1.random模块
randint ------ 产生随机整数[m,n] 取得到n
>>> import random
>>> random.randint(3,6)
3
>>> random.randint(3,6)
6
>>> random.randint(3,6)
4
random ----- 产生0-1之间的随机浮点数 [m,n) 注意:random没有参数
>>> import random
>>> random.random()
0.4061821341553852
>>> random.random()
0.6943472680456618
uniform ----- 产生正态分布的随机数(不太常用)[m,n],返回浮点数
>>>import random
>>> random.random()
0.5042880400298682
>>> random.uniform(2,4)
2.2686205227876473
randrange ------ 产生的是一个范围内的随机整数 [m,n)
>>>import random
>>> random.randrange(3,5)
4
>>> random.randrange(3,6)
3
choice ------ 在序列(有序序列)里面筛选元素
>>>import random
>>> s=[1,2,3,4,5]
>>> random.choice(s)
4
>>> random.choice(s)
1
2.math模块
floor()-------向下取整,参数:number类型
>>> import math
>>> math.floor(2.1)
2
>>> math.floor(2.8)
2
ceil()------向上取整,参数:number类型
>>>import math
>>> math.ceil(2.1)
3
>>> math.ceil(0.1)
1
fabs -------- 取绝对值(和全局函数abs()的功能是一样的)参数:number 返回的时浮点数
>>>import math
>>> math.fabs(-6)
6.0
>>> math.fabs(-4)
4.0
>>> math.fabs(4)
4.0
fmod ------求模的运算 参数:两个number类型的数值 返回的两数的模 且是浮点数
>>>import math
>>> math.fmod(-5,9)
-5.0
>>> math.fmod(5,9)
5.0
sqrt-----开方 参数:number类型 返回浮点数
>>>import math
>>> math.sqrt(4)
2.0
>>> math.sqrt(3)
1.7320508075688772
3.os模块
curdir------是属性无参 获取的是当前目录 返回的是相对路径
>>> import os
>>> os.curdir
'.'
cpu_count----返回的是cpu核对应的线程数 无参
>>>import os
>>> os.cpu_count()
4
get_cwd----获取当前的目录的路径(绝对路径) 无参
>>>import os
>>> os.getcwd()
'C:\\Users\\apple'
getpid-----获取当前进程的进程号 无参
>>> import os
>>> os.getpid()
2676
getppid------获取当前进程的父进程号 无参
>>> import os
>>> os.getppid()
7780
listdir-------返回的是给定路径下的所有文件(包含隐藏文件) 且返回的是一个列表(相对路径)
>>> import os
>>> os.listdir("C:\\")
['$Recycle.Bin', 'AppleBcInstaller.log', 'CloudMusic', 'Config.Msi', 'Documents and Settings', 'Download', 'END', 'hiberfil.sys', 'Intel', 'kridlepluginmgr', 'KwDownload', 'pagefile.sys', 'PerfLogs', 'predownload', 'Program Files', 'Program Files (x86)', 'ProgramData', 'QMDownload', 'qqpcmgr_docpro', 'Recovery', 'swapfile.sys', 'System Volume Information', 'taidbox', 'Temp', 'Users', 'Windows', '下载软件', '新建文件夹', '迅雷下载']
makedirs----创建目录,支持多层创建
>>> import os
>>> os.makedirs("C:\\A\\B\\C")
mkdir-----创建目录,只能创建一个
>>> import os
>>> os.mkdir("C:\\D")
>>> os.mkdir("C:\\F\\H")
Traceback (most recent call last): #不支持多层创建
File "<stdin>", line 1, in <module>
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'C:\\F\\H'
remove-----删除文件 一般在删除C盘文件时会拒绝访问,删除不了
removedirs------删除文件,支持多级删除
4.os.path模块
os.path模块时os中的小模块 引入该模块:import os.path from os import path
import os.path as XXX 给该模块取别名为XXX
abspath(相对路径)----返回的时该相对路径的绝对路径
>>>import os.path
>>> os.path.abspath("下载软件")
'C:\\Users\\apple\\下载软件'
exists---判断文件是否存在 参数:绝对路径
>>>import os.path
>>> os.path.exists("C:\\Users\\apple\\Desktop\\python\\猜单词.py")
True
>>> os.path.exists("猜单词.py")
False
getctime------获取文件创建的时间 返回秒 参数:绝对路径
>>>import os.path
>>> os.path.getctime("C:\\Users\\apple\\Desktop\\python\\猜单词.py")
1634740584.498656
getmtime-----获取的是修改的时间 参数:绝对路径 返回秒
>>>import os.path
>>> os.path.getmtime("C:\\Users\\apple\\Desktop\\python\\猜单词.py")
1634907807.889822
getsize-----获取文件的大小(单位:字节) 参数:绝对路径
>>> import os.path
>>> os.path.getsize("C:\\Users\\apple\\Desktop\\python\\猜单词.py")
542
isdir----判断是否是目录 参数:绝对路径
>>>import os.path
>>> os.path.isdir("C:\\Users\\apple\\Desktop\\python\\猜单词.py")
False
>>> os.path.isdir("C:\\Users\\apple\\Desktop\\python")
True
isfile----判断是否是文件 参数:绝对路径
>>>import os.path
>>> os.path.isfile("C:\\Users\\apple\\Desktop\\python\\猜单词.py")
True
>>> os.path.isfile("C:\\Users\\apple\\Desktop\\python")
False
join----拼接路径
>>>import os.path
>>> f=os.path.join("C:\\Users\\apple"+"\\"+"Desktop\\python")
>>> f
'C:\\Users\\apple\\Desktop\\python'
>>> os.path.isdir(f)
True
5.sys模块
argv----获取脚本参数 返回的是一个列表类型
import sys
def my_sum(s):
s=int(s)
return s**2
lis=sys.argv
print(my_sum(lis[1]))
print(lis)
exit()-----退出当前的程序
>>>import sys
>>>sys.exit()
6.time模块
sleep-----表示休眠时间 单位秒
>>>import time
>>>time.sleep(4)
asctime ----- 获取当前的时间 ctime ------ 获取当前的时间
>>> import time
>>> time.asctime()
'Mon Nov 22 13:22:04 2021'
>>> time.ctime()
'Mon Nov 22 13:22:11 2021'
localtime ----- 获取本地的时间,返回的是对象 用来格式化时间
tm_year----表示年
tm_mon----表示月
tm_mday----表示天
tm_hour-----表示小时
tm_min----表示分钟
tm_sec----表示秒
>>> import time
>>> t=time.localtime()
>>> print("%s-%s-%s %s:%s:%s"%(t.tm_year,t.tm_mon,t.tm_mday,t.tm_hour,t.tm_min,t.tm_sec))
2021-11-22 13:25:33
time----获取当前时间的时间戳(1970)返回的秒
>>> import time
>>> time.time()
1637558975.9053242
strptime ---- 将一个特定的时间字符串转换为时间对象
>>>import time
>>> time.strptime(t,"%Y-%m-%d %H:%M:%S")
time.struct_time(tm_year=2021, tm_mon=11, tm_mday=22, tm_hour=13, tm_min=13, tm_sec=56, tm_wday=0, tm_yday=326, tm_isdst=-1)
7.uuid模块
uuid---获取永不重复的字符串
uuid4()
>>> import uuid
>>> uuid.uuid4().hex
'0f67dae41ec84eafbcca3c9a08c502f4'
8.hashlib 库
hashlib库---用来加密
md5----加密方式
>>>import hashlib
>>> t=hashlib.md5("12323".encode("utf-8"))
>>> t.hexdigest()
'ae6e334f62fb5d989398deed87568c94'
update----hashlib库中的方法 盐值混淆
>>>import hashlib
>>> t=hashlib.md5("12323".encode("utf-8"))
>>> t.hexdigest()
'ae6e334f62fb5d989398deed87568c94'
>>> t.update("%$%^&*".encode("utf-8"))
>>> t.hexdigest()
'87b586f29b027543489cab35949a18d1'
9.hmac----哈希加密库对称加密
hmac.new()----参数:第一个参数是要加密的字符串,第二个参数是盐值,第三个参数是加密算法
>>> import hashlib
>>> import hmac
>>> t=hmac.new("1213bb".encode("utf-8"),"&&&&^&tt".encode("utf-8"),hashlib.md5)
>>> t.hexdigest()
'c94f047e4a2b8dc83ccfc45adf57bd94'
10.pickle模块
dumps ------ 将对象序列化为字节数据
>>> import pickle
>>> s=[1,2,23,56,99]
>>> t=pickle.dumps(s)
>>> t
b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x17K8Kce.'
loads ------ 将字节数据反序列化为对象
>>> import pickle
>>> s=[1,2,23,56,99]
>>> t=pickle.dumps(s)
>>> t
b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x17K8Kce.'
>>> f=pickle.loads(t)
>>> f
[1, 2, 23, 56, 99]
dump ------ 将对象序列化为字节数据并且保存到file中
>>> import pickle
>>> s="年后"
>>> pickle.dump(s,open("C:\\Users\\apple\\Desktop\\ww.dat","wb"))
load----将对象反序列化为字符数
>>> import pickle
>>> s="年后"
>>> pickle.dump(s,open("C:\\Users\\apple\\Desktop\\ww.dat","wb"))
>>> pickle.load(open("C:\\Users\\apple\\Desktop\\ww.dat","rb"))
'年后'