Python常用的模块有
-calendar
-time
-datetime
-timeit
-os
-shutil
-zip
-math
-string
-上述所有模块使用理论上都应该先导入,string是特例
-calendar,time,datetime的区别参考中文意思
calendar
-
跟日历相关的模块
-
使用需要先导入
import calendar
-calendar:获取一年的日历字符串
-calendar参数:
1.w = 每个日期间的间隔字符数
2.l = 每周所占用的行数
3.c = 每个月之间的间隔字符数
cal = calendar.calendar(2019)
print(cal)
-month() 获取某个月的日历字符串
-
格式:calendar.month(年,月)
-反回值:月日历的字符串m3 = calendar.month(2019, 3) print(m3)
-monthrange() 获取一个月的周几开始即和天数
-
格式:calendar.monthrange(年,月)
-
回值:元组(周几开始,总天数)
-
注意:周默认 0 -6 表示周一到周天
w,t = calendar.monthrange(2019, 3) print(w) print(t)
-monthcalendar() 返回一个月每天的矩阵列表
-
格式:calendar.monthcalendar(年,月)
-
回值:二级列表
-
注意:矩阵中没有天数用0表示
m = calendar.monthcalendar(2019, 3) print(type(m)) print(m)
-
prcal: print calendar 直接打印日历
calendar.prcal(2018)
-
prmonth() 直接打印整个月的日历
-
格式:calendar.prmonth(年,月)
-
返回值:无
calendar.prmonth(2018, 3)
-
weekday() 获取周几
-式:calendar.weekday(年,月,日)
-:周几对应的数字calendar.weekday(2018, 3, 26)
time模块
##时间戳
- 个时间表示单位,根据不同的语言,可以是整数或者浮点数
- 是从1970年1月1日0时0分0秒到现在经历的秒数
- 如果表示的时间是从1970年以前或者太遥远的未来,可能会出现异常
- 32位操作系统能够支持到2038年
##TC时间
- UTC又称为世界协调时间,以英格兰的格林尼治天文所在地区的时间作为参考的时间,也叫作世界标准时间。
- 中国时间是 UTC+8 东八区
##夏令时
- 夏令时时间就是在夏天的时候将时间调快一个小时,本意是督促大家早睡早起!每天变为25小时,本质没变还是24小时
##时间元组
-一个包含时间内容的普通元组
-
需要单独导入time模块
-
时间模块的属性
1.timezone:前时区和UTC时间相差的秒数,在没有夏令时的情况下的间隔,东八区的是 -28800
2.ltzone 获取当前时区与UTC时间相差的秒数,在有夏令时的情况下,
3.aylight 测当前是否是夏令时时间状态, 0 表示是print(time.daylight) print(time.altzone) print(time.timezone)
-
得到时间戳
time.time()
-localtime, 得到当前时间的时间结构 -可以通过点号操作符得到相应的属性元素的内容
t = time.localtime()
print(t.tm_hour)
-
asctime() 返回元组的正常字符串化之后的时间格式
-
格式:time.asctime(时间元组)
-
返回值:字符串 Tue Jun 6 11:11:00 2017
t =time.localtime() tt = time.asctime(t) print(type(tt)) print(tt)
-
ctime: 获取字符串化的当前时间
t = time.ctime() print(type(t)) print(t)
-mktime() 使用时间元组获取对应的时间戳
-格式:time.mktime(时间元组)
-返回值:浮点数时间戳
lt = time.localtime()
ts = time.mktime(lt)
print(type(ts))
print(ts)
- clock :获取CPU时间,版本3.0-3.3直接使用,3.6调用有问题
- sleep:是程序进入睡眠,n秒后继续
strftime:将时间元组转化为自定义的字符串格式
格式 含义 备注
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24 小时制,00 - 23)
%I 一天中的第几个小时(12 小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地 am 或者 pm 的相应符 注1
%S 秒(01 - 61) 注2
%U 一年中的星期数(00 - 53 星期天是一个星期的开始)第一个星期天之前的所有天数都放在第 0 周 注3
%w 一个星期中的第几天(0 - 6,0 是星期天) 注3
%W 和 %U 基本相同,不同的是 %W 以星期一为一个星期的开始
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%z 用 +HHMM 或 -HHMM 表示距离格林威治的时区偏移(H 代表十进制的小时数,M 代表十进制的分钟数)
%% %号本身
datetime模块
-
datetime提供日期和时间的算和表示
-
datetime的常见属性 datetime.date:一个理想和的日期,提供year,month,day属性
-
datetime.time:提供一个理想和的时间,居于hour,minite,second等
-
datetime.datetime:提供日期跟时间的组合
-
datetime.timedelta:提供一个时间差,时间长度
datetime.datetime
from datetime import datetime
-
它的常用类方法:
-
today:
-
now
-
utcnow
-
fromtimestamp: 从时间戳中返回本地时间
dt = datetime(2018, 3, 26) print(dt.today()) print(dt.now()) print(dt.fromtimestamp(time.time()))
datetime.timedelta
-表示一个时间间隔
from datetime import datetime,timedelta
t1 = datetime.now()
print(t1.strftime("%Y-%M-%d %H:%M:%S")
#td表示一个小时的时间长度
td = timedelta(hours=1)
#当前时间加上时间间隔后,把得到的一个小时后的时间格式化输出
print((t1+td).strftime("%Y-%m-%d %H:%M:%S"))
timeit-时间测量工具
-测量程序运行时间间隔实验
-
timeit可以执行一个函数,来测量一个函数的执行时间
s = ''' def doIt(num): for i in range(num): print("Repeat for {0}".format(i)) ''' #执行doIt(num) #setup负责把环境变量准备好 #实际相当于给timeit创在一个小环境 #在创造小环境中,代码的执行顺序大致是 ''' def doIt(num): .... num=3 doIt(num) ''' t = timeit.timeit("doIt(num)",setup=s+"num=3",number=10) print(t)