模块
time 模块
Time.time 是记录当前的时间的方法,以时间戳的形式
time.clock 是记录CUP的执行时间
time.sleep 是可以停住多少秒,取决于参数
Time.localtime 是记录当前时间,以结构化时间的形式
Time.strftime(‘%Y-%m-%d %H:%M:%S’,加当前时间) 是以自己定义的形式来显示当前时间,Y是年,m是月,d是日,H是时,M时分,S是秒
time.localtime().tm_mday 可以通过这个方法拿出当前是第几天
Time.ctime 将时间戳转换为时间
Time.mktime 将时间转换为时间戳
Datetime 模块
Datetime.datetime.now() 当前的时间
random 模块(随机数模块)
Random.random 从0到1里面随机生成一个数
Random.randint(1,10)从 1 到10 里面随机生成一个数
random.choice("abcdefz") 从abcdefz中随机生成一个
random.sample([1,2,3,4,5,6,7,8,9,10],2) 从1~10中随机选择两个数
random.randrange(1,3) 从1~2中随机生成一个数
chr()将数字转换为字母
Os 模块 (操作系统模块)
Os.getcwd() 获取当前脚本的路径
os.chdir(r”路径名”) 修改当前路径
os.makedirs(“文件名\\文件名”)创建多层文件夹
os.removedirs(“文件名\\文件名”) 删除多层空的文件夹
os.mkdir(“文件名”)生成一个文件夹
os.rmdir(“文件名”)删除一个文件夹
Os.listdir(“绝对路径”)显示当前路径下的所有文件
os.remove(“文件”)只能删除文件
os.rename(“文件名”,”要命名为的文件名”)重命名一个文件
os.stat(“文件名”) 获取文件信息,st_size 是文件大小,比较重要
os.sep 获取当前系统的路径分隔符
os.system(“命令”) 获取终端
os.path.dirname(“文件名”) 获取上一级绝对路径
Os.path.josn(a,b) 路径拼接
__file__ 获取当前相对路径
os.path.abspath(__file__) 获取相对路径的绝对路径
Sys 模块(python解释器模块)
Sys.argv()可以传入一个参数
Sys.path() 查询模块路径的一个列表
sys.platform() 展示操作系统
hashlib 模块 (加密模块)
Python3里面存的都是uncode类型,update的类型必须是一个UTF8
x = hashlib.md5() x是一个变量,将明文加密为md5的暗文
x.updata(“hello world”.encode(“utf8”)) 这是将hello world 转换为md5的暗纹
x.hexdigest() 打印暗文
logging 模块 (日志模块)
日志的五个级别从小到大
logging.debug()
logging.info()
logging.warning()
logging.error()
logging.critical()
logging.basicConfig
更改logging模块的默认行为
filename = “文件名” 将日志信息储存的文件名,可以加绝对路径
filemode = “a” 将日志以什么形式打开,a是追加,w是重写
datefmt = “时间格式” 指定日志使用什么样子的时间格式
format = “日志格式” 指定日志以什么格式展示
Format 参数重用到的格式化串
%(levelname)s 文本形式的日志级别
%(levelno)s 数字形式的日志级别
%(filename)s 调用日志输出函数的模块的文件名
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(lineno)d 调用日志输出函数的语句所在的代码行
%(message)s用户输出的消息
logging.FileHandler("x.log") 是一个文件对象
logging.StreamHandler() 是一个屏幕对象
logging.Formatter("%(asctime)s\n%(filename)s\n[line:%(lineno)d]\n%(levelname)s\n%(message)s”) 修改格式
Configparser 模块 (配置文件模块)
import configparser
config = configparser.ConfigParser()
config["A"] = {'123':'123',
'222':'222',
'333':'423'
}
config['B'] = {'444':'555'}
with open("123.ini",'w') as configparser:
config.write(configparser)
config.read('123.ini')
print(config.sections())
config.remove_section('B')
#config.set('A','123','321')
config.remove_option('A','123')
config.write(open('i.cfg','w'))
Re 模块 (正则)
re.findall 完全匹配
su = re.search 匹配第一个并且将结果返回给一个变量
su.group() 可以查看匹配结果
Re.match 只从开头匹配,类似于^
re.split 从规则中分
num = re.split('[s,v]','dsadlhdvfdf')
print(num)
Re.sub() 用于替换文字
num = re.sub('sb','sx','sb')
print(num)
a = re.compile(‘\.com') 此方法避免了重复填写规则
2元字符
. 指所有的字符都可以匹配上(除了换行符)(1个点只能匹配一位字符)
^ 只在开始进行匹配
$ 只在结尾进行匹配
*重复匹配前面的字符从0到∞
+重复匹配前面的字符从1到∞
? 匹配前面的元素0个或者1个
{}匹配前面的元素,匹配次数按大括号中的值,可以是一个范围
[] 取消元字符的特殊功能(\ ^ - 除外)
[1-9] 可以匹配1到9的范围内的数字
[a-z]可以匹配a到z的范围内的字母
[a,b]只取一个,是或的关系
[^t]取反,取除了t以外的数据
\ 将元字符变为普通字符,将普通字符变为特殊字符
\d 匹配数字
\D 匹配除了数字以外的字符
\w 匹配数字字母
\W 匹配除了数字字母以外的字符
\b 匹配特殊字符的边界
re.findall(r'I\b','I am a list') 匹配一个I
()是将多个字符整合成一个字符来进行匹配
num = re.search('(?P\d{3})/(?P\w{3})','123456/wwwd') print(num.group('name'))?P<可以按id来搜索>
这是一个整体的规则,但是可以在整体的规则中取一些值
| 是一个或关系,只匹配一个