赞
踩
python和时间相关的模块有两个:time、datetime
时间戳指的是当前时间到1970年1月1日0时0分0秒(指的是格林威治时间)的时间差(单位时秒)
优点:
1)使用时间戳保存时间比使用字符串保存时间所占用的内存要少很多;
2)通过时间戳对时间进行加密更简单
time() - 获取当前时间,返回的是时间戳
localtime() - 获取当前本地时间,返回的是结构体时间
localtime(时间戳) - 将时间转换成本地的结构体时间
将结构体时间转换成字符串时间
strftime(时间格式字符串,结构体时间)
"""
%Y - 年
%m - 月
%d - 日
%H - 时(24小时制)
%I - 时(12小时制)
%M - 分
%S - 秒
%a - 星期(简写)
%A - 星期(全拼)
%w - 星期(数字值)
%b - 月份(简写)
%B - 月份(全拼)
%p - 上午或者下午(AM/PM)
"""
from datetime import time, date, datetime, timedelta
# time - 时分秒
# date - 年月日
# datetime - 年月日时分秒
t1 = date.today()
print(t1, t1.year, t1.month, t1.day) # 2020-12-26 2020 12 26
t2 = datetime.now()
print(t2) # 2020-12-26 17:50:13.300294
t3 = datetime(2020, 12, 31, 23, 59, 10)
print(t3) # 2020-12-31 23:59:10
print(t3 + timedelta(seconds=40)) # 2020-12-31 23:59:50
print(t3 + timedelta(days=1)) # 2021-01-01 23:59:10
hashlib是python自带的一个专门提供hash加密的模块
hash加密的特点:
应用场景
怎么生成摘要
根据加密算法创建hash对象
hash = hashlib.md5() # 常见hash算法: md5、sha相关
确定加密对象
hash对象.update(数据)
数据 - 必须是bytes对象
hash.update(bytes('123456', encoding='utf-8'))
生成摘要(生成密文)
hash对象.hexdigest()
result = hash.hexdigest()
print(result) # e10adc3949ba59abbe56e057f20f883e
生成图片摘要
hash = hashlib.md5()
with open('图片路径', 'rb') as f:
hash.update(f.read())
print(hash.hexdigest())
生成文本文件摘要
hash = hashlib.md5()
with open('01-回顾.py', 'rb') as f:
hash.update(f.read())
print(hash.hexdigest()) # 584e96244fb3de4e51233ee5306f37d0
(补充)字符串和二进制之间的相互转换
字符串转二进制 - 编码
a.bytes(字符串, encoding=‘utf-8’)
str1 = 'hello world!'
b1 = bytes(str1, encoding='utf-8')
print(type(b1)) # <class 'bytes'>
b.字符串.encode()
b2 = str1.encode()
print(type(b2)) # <class 'bytes'>
二进制转字符串 - 解码
a.str(二进制, encoding=‘utf-8’)
b.二进制.decode()
s1 = str(b1, encoding='utf-8')
print(s1, type(s1)) # hello world! <class 'str'>
s2 = b1.decode()
print(s2, type(s2)) # hello world! <class 'str'>
import math, cmath, os
print(math.ceil(1.2)) # 2 - 向上取整
print(math.floor(1.2)) # 1 - 向下取整
什么是json
json是一种数据格式: 一个json有且只有一个数据;这个唯一的数据必须是json支持的数据类型的数据
json支持的数据类型
json数据转python
数字 – 整型、浮点型
字符串 – 字符串
布尔 – 布尔:true -> True; false -> False
数组 – 列表
字典 – 字典
null – None
json.loads(json数据) - json数据指的是jison格式的字符串(字符串去掉引号之后,本身就是一个合法的json数据)
‘abc’ - 不是json格式字符串
’ “abc” ’ - 是json格式字符串
‘123’ – 是json格式字符串
result = json.loads('"abc"')
print(result, type(result)) # 'abc' <class 'str'>
result = json.loads('123')
print(result, type(result)) # 123 <class 'int'>
result = json.loads('true')
print(result, type(result)) # True <class 'bool'>
result = json.loads('["hello", 123, null, false]')
print(result, type(result)) # ['hello', 123, None, False] <class 'list'>
result = json.loads('{"name":"小明", "age":18}')
print(result, type(result)) # {'name': '小明', 'age': 18} <class 'dict'>
python数据转json
int、float -> 数字
布尔 -> 布尔:True -> true, False -> false
字符串 -> 字符串,引号变成双引号
列表、元组 -> 数组
字典 -> 字典
None -> null
json.dumps(python数据) - 将python数据转换成json格式的字符串
120 -> ‘120’
‘abc’ -> ’ “abc” ’
[‘abc’, 120, True] -> ‘[“abc”, 120, true]’
result = json.dumps(120)
print(result, type(result)) # '120' <class 'str'>
result = json.dumps('abc')
print(result, type(result)) # '"abc"' <class 'str'>
result = json.dumps([120, False, None, 'hello'])
print(result, type(result)) # '[120, false, null, "hello"]' <class 'str'>
result = json.dumps({'name':'张三', 10:100})
print(result) # '{"name": "\u5f20\u4e09", "10": 100}'
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。