python常用模块
datetime
1 | print(datetime.datetime.now()) # 现在的时间 |
json与pickle
os
start.py
1 | # start.py |
os.remove(‘path/filename’) 删除文件
os.rename(oldname, newname) 重命名文件
os.walk() 生成目录树下的所有文件名
os.chdir(‘dirname’) 改变目录
os.mkdir/makedirs(‘dirname’)创建目录/多层目录
os.rmdir/removedirs(‘dirname’) 删除目录/多层目录
os.listdir(‘dirname’) 列出指定目录的文件
os.getcwd() 取得当前工作目录
os.chmod() 改变目录权限
os.path.basename(‘path/filename’) 去掉目录路径,返回文件名
os.path.dirname(‘path/filename’) 去掉文件名,返回目录路径
os.path.join(path1[,path2[,…]]) 将分离的各部分组合成一个路径名
os.path.split(‘path’) 返回( dirname(), basename())元组
os.path.splitext() 返回 (filename, extension) 元组
os.path.getatime\ctime\mtime 分别返回最近访问、创建、修改时间
os.path.getsize() 返回文件大小
os.path.exists() 是否存在
os.path.isabs() 是否为绝对路径
os.path.isdir() 是否为目录
os.path.isfile() 是否为文件
sys
常用
1 | 1 sys.argv 命令行参数List,第一个元素是程序本身路径 |
sys.argv 命令行参数List,第一个元素是程序本身路径
sys.modules.keys() 返回所有已经导入的模块列表
sys.exc_info() 获取当前正在处理的异常类,exc_type、exc_value、exc_traceback当前处理的异常详细信息
sys.exit(n) 退出程序,正常退出时exit(0)
sys.hexversion 获取Python解释程序的版本值,16进制格式如:0x020403F0
sys.version 获取Python解释程序的版本信息
sys.maxint 最大的Int值
sys.maxunicode 最大的Unicode值
sys.modules 返回系统导入的模块字段,key是模块名,value是模块
sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform 返回操作系统平台名称
sys.stdout 标准输出
sys.stdin 标准输入
sys.stderr 错误输出
sys.exc_clear() 用来清除当前线程所出现的当前的或最近的错误信息
sys.exec_prefix 返回平台独立的python文件安装的位置
sys.byteorder 本地字节规则的指示器,big-endian平台的值是’big’,little-endian平台的值是’little’
sys.copyright 记录python版权相关的东西
sys.api_version 解释器的C的API版本
sys.stdin,sys.stdout,sys.stderr
os和sys区别
os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口;sys模块负责程序与python解释器的交互,提供了一系列的函数和变量,用于操控python的运行时环境。
random
1 | import random |
产生随机号码
1 | def make_code(size=7): |
打印进度条
1 | import time |
subprocess
time
时间分为三种格式
1、时间戳
1 | start= time.time() |
2、格式化的字符串形式
1 | print(time.strftime('%Y-%m-%d %X')) |
3、 结构化的时间/时间对象
1 | t1=time.localtime() |
获取格式化字符串形式的时间麻烦
时间戳与格式化时间之间的转换麻烦
获取之前或者未来的时间麻烦.所以用到了 datetime模块
hash
什么是hash
hash是一种算法,该算法接受传入的内容,经过运算得到一串hash值
如果把hash算法比喻为一座工厂
那传给hash算法的内容就是原材料
生成的hash值就是生产出的产品为何要用hash算法
hash值/产品有三大特性:
1、只要传入的内容一样,得到的hash值必然一样
2、只要我们使用的hash算法固定,无论传入的内容有多大,
得到的hash值的长度是固定的
3、不可以用hash值逆推出原来的内容1
2基于1和2可以在下载文件时做文件一致性校验
基于1和3可以对密码进行加密怎么用
import hashlib
1、造出hash工厂
m=hashlib.sha512(‘你’.encode(‘utf-8’))1
22、运送原材料
m.update('好啊美sadfsadf丽asdfsafdasdasdfsafsdafasdfasdfsadfsadfsadfsadfasdff的张铭言'.encode('utf-8'))3、产出hash值
print(m.hexdigest()) #2ff39b418bfc084c8f9a237d11b9da6d5c6c0fb6bebcde2ba43a433dc823966c
hashlib.md5
1 | import hashlib |
hashlib.sha256
1 | import hashlib |
模拟撞库破解密码
1 | import hashlib |
hmac.new
1 | #要想保证hmac最终结果一致,必须保证: |
logger日志
1 | # setting.py |
接口
1 | bank_logger = common.get_logger('bank') |
公共端函数
1 | def get_logger(name): |
subprocess模块
1 | import subprocess |