目录
- 时间模块time() 与 datetime()
- random()模块
- os模块
- sys模块
- tarfile用于将文件夹归档成 .tar的文件
- shutil 创建压缩包,复制,移动文件
- zipfile将文件或文件夹进行压缩
- shelve 模块
- json和pickle序列化
- hashlib 模块
- subprocess 模块
- re模块
时间模块time() 与 datetime()
-
time()模块中的重要函数
-
time()模块时间格式转换
-
time()模块时间转换
- 时间戳 1970年1月1日之后的秒, 即:time.time()
- 格式化的字符串 2014-11-11 11:11, 即:time.strftime(‘%Y-%m-%d’)
- 结构化时间 元组包含了:年、日、星期等… time.struct_time 即:time.localtime()
import time
print(time.time()) # 时间戳:1511166937.2178104
print(time.strftime('%Y-%m-%d')) # 格式化的字符串: 2017-11-20
print(time.localtime()) # 结构化时间(元组): (tm_year=2017, tm_mon=11...)
print(time.gmtime()) # 将时间转换成utc格式的元组格式: (tm_year=2017, tm_mon=11...)
#1. 将结构化时间转换成时间戳: 1511167004.0
print(time.mktime(time.localtime()))
#2. 将格字符串时间转换成结构化时间 元组: (tm_year=2017, tm_mon=11...)
print(time.strptime('2014-11-11', '%Y-%m-%d'))
#3. 结构化时间(元组) 转换成 字符串时间 :2017-11-20
print(time.strftime('%Y-%m-%d', time.localtime())) # 默认当前时间
#4. 将结构化时间(元组) 转换成英文字符串时间 : Mon Nov 20 16:51:28 2017
print(time.asctime(time.localtime()))
#5. 将时间戳转成 英文字符串时间 : Mon Nov 20 16:51:28 2017
print(time.ctime(time.time()))
- ctime和asctime区别
1)ctime传入的是以秒计时的时间戳转换成格式化时间
2)asctime传入的是时间元组转换成格式化时间
import time
t1 = time.time()
print(t1) #1483495728.4734166
print(time.ctime(t1)) #Wed Jan 4 10:08:48 2017
t2 = time.localtime()
print(t2) #time.struct_time(tm_year=2017, tm_mon=1, tm_mday=4, tm_hour=10, print(time.asctime(t2)) #Wed Jan 4 10:08:48 2017
- datetime获取时间
import datetime
#1、datetime.datetime获取当前时间
print(datetime.datetime.now())
#2、获取三天后的时间
print(datetime.datetime.now()+datetime.timedelta(+3))
#3、获取三天前的时间
print(datetime.datetime.now()+datetime.timedelta(-3))
#4、获取三个小时后的时间
print(datetime.datetime.now()+datetime.timedelta(hours=3))
#5、获取三分钟以前的时间
print(datetime.datetime.now()+datetime.timedelta(minutes = -3))
import datetime
print(datetime.datetime.now()) #2017-08-18 11:25:52.618873
print(datetime.datetime.now().date()) #2017-08-18
print(datetime.datetime.now().strftime("%Y-%m-%d %H-%M-%S")) #2017-08-18 11-25-52
- datetime时间转换
#1、datetime对象与str转化
# datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
'2018-03-09 10:08:50'
# datetime.datetime.strptime('2016-02-22',"%Y-%m-%d")
datetime.datetime(2016, 2, 22, 0, 0)
#2、datetime对象转时间元组
# datetime.datetime.now().timetuple()
time.struct_time(tm_year=2018, tm_mon=3, tm_mday=9,
#3、时间戳转换成datetime对象
# datetime.datetime.fromtimestamp(1520561646.8906238)
datetime.datetime(2018, 3, 9, 10, 14, 6, 890624)
- 本地时间与utc时间相互转换
# 本地时间与utc时间相互转换
import time
import datetime
def utc2local(utc_st):
''' 作用:将UTC时间装换成本地时间
:param utc_st: 传入的是utc时间(datatime对象)
:return: 返回的是本地时间 datetime 对象
'''
now_stamp = time.time()
local_time = datetime.datetime.fromtimestamp(now_stamp)
utc_time = datetime.datetime.utcfromtimestamp(now_stamp)
offset = local_time - utc_time
local_st = utc_st + offset
return local_st
def local2utc(local_st):
''' 作用:将本地时间转换成UTC时间
:param local_st: 传入的是本地时间(datatime对象)
:return: 返回的是utc时间 datetime 对象
'''
time_struct = time.mktime(local_st.timetuple())
utc_st = datetime.datetime.utcfromtimestamp(time_struct)
return utc_st
utc_time = datetime.datetime.utcfromtimestamp(time.time())
# utc_time = datetime.datetime(2018, 5, 6, 5, 57, 9, 511870) # 比北京时间晚了8个小时
local_time = datetime.datetime.now()
# local_time = datetime.datetime(2018, 5, 6, 13, 59, 27, 120771) # 北京本地时间
utc_to_local = utc2local(utc_time)
local_to_utc = local2utc(local_time)
print utc_to_local # 2018-05-06 14:02:30.650270 已经转换成了北京本地时间
print local_to_utc # 2018-05-06 06:02:30 转换成北京当地时间
- django的timezone时间与本地时间转换
# django的timezone时间与本地时间转换
from django.utils import timezone
from datetime import datetime
utc_time = timezone.now()
local_time = datetime.now()
#1、utc时间装换成本地时间
utc_to_local = timezone.localtime(timezone.now())
#2、本地时间装utc时间
local_to_utc = timezone.make_aware(datetime.now(), timezone.get_current_timezone())
- Python计算两个日期之间天数
import datetime
d1 = datetime.datetime(2018,10,31) # 第一个日期
d2 = datetime.datetime(2019,2,2) # 第二个日期
interval = d2 - d1 # 两日期差距
print(interval.days) # 具体的天数
random()模块
- random()模块常用函数
- random常用函数举例
import random
#⒈ 随机整数:
print(random.randint(0,99)) # 随机选取0-99之间的整数
print(random.randrange(0, 101, 2)) # 随机选取0-101之间的偶数
#⒉ 随机浮点数:
print(random.random()) # 0.972654134347
print(random.uniform(1, 10)) # 4.14709813772
#⒊ 随机字符:
print(random.choice('abcdefg')) # c
print(random.sample('abcdefghij',3)) # ['j', 'f', 'c']
. 使用random实现四位验证码
- 使用for循环实现
# 使用for循环实现
import random
checkcode = ''
for i in range(4):
current = random.randrange(0,4)
if current == i:
tmp = chr(random