python常用的内置函数
程序员文章站
2022-05-29 22:12:52
...
python有许多的内置模块,出来python自带的,还有许多的第三方模块,下面我们就来看看python常用的模块吧。
os(系统进行交换的模块)与sys
os模块:
import os
#print(os.getcwd())#获取当前目录路径,或脚本路径
#print(os.listdir())#获取当前和所有的文件
#os.remove("文件名")#删除文件
#os.remove(r"c:\目录名")删除目录
#os.system("ipconfig")#运行shell命令,查看网卡
#os.remove("lx.py","haha.py")#修改文件名称
#os.mkdirs("c/d/e/f/g")#创建多个目录
print(os.stat("lx.py"))#获取文件属性
os.path(os中的一个单独的子模块)
#os.path.isfile("文件名")#判断是否为一个文件
#os.path.isdir("目录名称")#判断是否为目录
#os.path.exists('路径名称')#判断路径是否存在
#print(os.path.abspath("lx.py"))#获取绝对路径
#print(os.path.basename("lx.py"))#只获取文件名称
|-- join(路径,*路径)
#连接两个(或多个)路径。
|-- split(路径)
#返回元组(头,尾),尾是最后一个斜杠之后的所有内容。
sys模块:
import sys
print(sys.path)#获取系统环境变量
print(sys.argv)#获取脚本参数
|-- sys.api_version # 获取python内核代码版本号
|-- exit() # 退出系统
|-- getdefaultencoding() #返回Unicode所使用的当前默认字符串编码
实现。
|-- getfilesystemencoding() #返回用于转换Unicode文件名的编码
操作系统文件名。
|-- getrecursionlimit() #返回递归限制的当前值,即最大深度
Python解释器堆栈的。这个极限阻止了无穷大递归避免导致C栈溢出和Python崩溃。
|-- getrefcount() # 获取引用计数的个数
|-- setrecursionlimit() #将Python解释器堆栈的最大深度设置为n
limit防止无限递归导致C溢出堆栈和崩溃的Python。最高可能的限制是平台-
相关的。
|-- stdin # 标准输入流(standard input)
|-- stdout # 标准输出流(standard output)
random模块
import random
random.randrange(1,10)#返回随机数,不包括10
random.randint(1,10)#返回随机数,包括10
print(random.randrange(1,100,2))#随机选取1——10的偶数
random.random()#随机返回一个浮点数
random.choice("absdcenercrn")#返回给定区间内的随机字符
print(random.sample("sxmssnxneinx",3))#从多个中选取特定数量的字符
#洗牌
a=[1,2,3,4,5,6,7,8,9]
random.shuffle(a)#随机打乱列表
print(a)
'''
现象:[4, 1, 3, 7, 5, 2, 8, 9, 6]
'''
math模块(数学模块)
三角函数相关的:
acos(返回x的反余弦(以弧度为单位))
acosh (返回x的反双曲余弦。)
asin ( 返回x的反正弦(以弧度为单位))。
asinh (返回x的反双曲正弦。)
atan (返回x的反正切(以弧度为单位)。
cos (返回x的余弦值(以弧度为单位))
sin (返回x的正弦值(以弧度为单位))
tan (返回x的正切(以弧度为单位))
|-- ceil # 向上取整
|-- floor # 向下取整
|-- fabs #返回浮点数x的绝对值。
|-- pow # 幂次方
|-- sqrt # 开平方根
time
|-- asctime([tuple]) # 把当前时间以字符串格式展示
|-- ctime([seconds]) # 把当前时间以字符串格式展示
|-- gmtime() # 构建一个时间对象(元组对象)(year, mon, day, hours, min, secs),以格林威治时间(UTC)
|-- localtime() # 构建一个时间对象(元组对象)(year, mon, day, hours, min, secs),以本地时区
|-- mktime() # 将时间对象转换为ctime
|-- sleep() # 让当前线程,休眠
|-- strftime() # 将时间对象格式化为需要的任意格式字符串
|-- strptime() # 将字符串转换为时间对象
|-- time.time() # 时间戳
datetime(可以看成time模块的补充)
time与datetime
datatime模块:
import datetime
#日期表达
|-- date # 构建日期
|-- time # 构建时间
|-- timezone # 构建时区
|-- datetime # 构建日期+时间
print(datetime.datetime.now())#输出当前时间,小时分钟秒
#时间运算
time=datetime.datetime.now()
print(time+datetime.timedelta(2))#增加时间2天
print(time+datetime.timedelta(-2))#减少2天
print(time+datetime.timedelta(-2,hours=6))#减少2天,加5小时
#时间替换
print(time.replace(year=2021,month=11,day=20))#时间替换为2021:11:20
calendar(日历)
import calendar
print(calendar.calendar(2021)) # 打印2021的日历
uid
1、什么是uuid?
UUID 是 通用唯一识别码(Universally Unique Identifier)的缩写,是一种软件建构的标准(特点:不可重复)
2、python如何获取uuid
import uuid
id = str(uuid.uuid4()) # 获取uuid
print(id)
加密模块(安全性)
加密算法:
不可逆加密(哈希加密、hash算法)
整个加密是单向的,不可逆的,结果是唯一的
主要作用:密码加密
数据校验
可逆加密
对称加密
加密和解密的秘钥是同一个!!
DES
非对称加密
加密和解密使用一对秘钥
数字签名:私钥和公钥一起使用;私钥用来解密和签名,公钥用来加密和验证。(证书标准为X.509)
hashlib
import hashlib
#MD5加密不可逆向解析
#**方法:先存储下来(彩虹表),根据加密后的密文进行反向查询。(md5的碰撞)(可在网站md5上查看)
#加盐混淆加密算法(不断加密):增加难度
mds="sadjsajc"#加密的明文
md5=hashlib.md5()#创建对象
md5.update(mds.encode("utf-8"))#更新加密明文
print(md5.hexdigest())#显示加密后内容
#加盐混淆加密算法
md5=hashlib.md5("123456".encode("utf-8"))
md5.update("789".encode("utf-8"))#加盐混淆
hmac
import hmac
#使用哈希算法同时,进行对称加密
hmac.new("123456".encode("utf-8"),"sadcndsak".encode("utf-8"),"MD5")
h=hmac.new("123445".encode("utf-8"),digestmod="MD5")#加盐混淆
print(h.hexdigest())
IO流
1、什么叫做IO流
IO Stream(input output stream):
狭义上:内存和永久存储设备之间数据流动
广义上:内存和(其他电脑|其他存储设备)间数据的交互