Python基础—10-常用模块:time,calendar,datetime
16lz
2021-04-13
#常用模块
time
sleep:休眠指定的秒数(可以是小数)
time:获取时间戳(从1970-01-01 00:00:00到此刻的秒数)
localtime:将一个时间戳转换为一个对象,对象中包含了所有日期时间信息
# 将时间戳转换为一个对象(包含年月日等信息)# 当不传参数,默认转换当前时间戳local_time = time.localtime()print(local_time)# 通过下表获取print(local_time[0])# 通过属性名获取print(local_time.tm_year)
mktime:将日期时间信息转换为时间戳
# 将日期时间信息转换为时间戳# new_time = time.mktime(local_time)new_time = time.mktime((2018, 6, 20, 10, 32, 10, 2, 171, 0))print(new_time)
strftime:将原则对象格式化显示
# 格式化显示,可以传递一个类似于元组的对象print(time.strftime('%Y-%m-%d %H:%M:%S %w %W', local_time))# 不传时间对象,默认转换当前时间print(time.strftime('%D'))'''%Y:年(4位)%y:年(2位)%m:月%d:日%D:月/日/年%H:时(24)%I:时(12)%M:分%S:秒%w:星期(1~7)%W:本周是今年的第几周'''
gmtime:将时间戳转换为localtime对象
# 将时间戳转换为localtime对象print(time.gmtime(time.time()))# 不传参数默认转换当前时间戳print(time.gmtime())
asctime:将localtime以特定的格式显示
# 将localtime格式化显示print(time.asctime(local_time))# 不传参数默认转换当前时间print(time.asctime())
timezone:时区
# 返回0时区与当前时区相差的秒数print(time.timezone)
calendar
使用
import calendar# 返回某一年的日历c = calendar.calendar(2018, w=3, l=2, c=10, m=2)# print(c)# 返回某一年某一月的日历m = calendar.month(2018, 6, w=3, l=2)# print(m)# 判断一个年份是否是闰年print(calendar.isleap(2008))# 返回两个年份之间的闰年数 [起始年,结束年)print(calendar.leapdays(2000, 2008)) # 返回2print(calendar.leapdays(2000, 2009)) # 返回3
datetime
date
from datetime import dateimport time# 创建对象d1 = date(2018, 6, 20)print(d1)d2 = date.today()print(d2)d3 = date.fromtimestamp(time.time())print(d3)# 转换为标准格式字符串s = d1.isoformat()print(s)# print(type(s))# 日历显示:(年,第几周,星期)print(d1.isocalendar())# 获取星期(1~7)print(d1.isoweekday())# 获取星期(0~6)print(d1.weekday())# 格式化print(d1.strftime('%Y/%m/%d'))# 转换为类似于元组的形式(localtime)print(d1.timetuple())
time
from datetime import time# 创建对象t = time(1, 2, 3)print(t)# 单独获取print('时', t.hour)print('分', t.minute)print('秒', t.second)# 格式化显示print(t.strftime('%H::%M::%S'))
datetime
from datetime import datetimeimport time# 创建对象dt = datetime(2018, 6, 20, 14, 29, 30)print(dt)# 当前时间,当地带时区的时间dt2 = datetime.now()print(dt2)# 不带时区的时间dt3 = datetime.utcnow()print(dt3)# 将时间戳转换为日期时间dt4 = datetime.fromtimestamp(time.time())print(dt4)# 提取日期d = dt.date()print(d)# print(type(d))# 提取时间print(dt.time())# 转换为时间戳print(dt.timestamp())# 格式化显示print(dt.strftime('%Y/%m/%d %H:%M:%S'))
timedelta
from datetime import datetime, timedeltad1 = datetime(2018, 6, 19, 10, 11, 12)d2 = datetime(2018, 6, 20, 12, 14, 18)# 得到时间差对象timedeltadelta = d2 - d1print(delta)print(type(delta))delta2 = timedelta(days=2, hours=3, minutes=4, seconds=6)print(delta2)d3 = d1 + delta2print(d3)# 天数print(delta2.days)# 除天以外的秒数print(delta2.seconds)# 总共的秒数print(delta2.total_seconds())
模块使用
定义:模块就像工具包一样,里面有很多工具(函数、类等),使用时导入即可
分类:
- 标准库:random、sys、os、time
- 第三方:就是别人写好的一些模块,你自己拿来使用(使用pip即可进行安装)
- 自定义:自己写的
导入:
import random # 导入import random as rdm # 导入后起别名from random import randint # 指定导入from random import randint as rint # 指定导入后起别名
as说明:
使用as起别名后,代码中只能使用别名。
可以避免冲突,可写简化书写
模糊导入:
from random import *
说明:导入random模块中 __ all __ 列表指定的内容,不建议使用(不易跟踪代码)
自定义模块
- 新建一个文件(不要与其他模块同名)
- 新建的文件名(除了后缀)就是模块名
- 导入的方式与官方的相同
- 文件名(模块名)就是命名空间,不同命名空间下的标识符可以相同
- 当使用多个模块下的相同标识符时,可以通过且别名或者通过命名空间进行区分
测试模块
if __name__ == '__main__':print('for test')
- 每个模块中都有一个变量__name__,它表示当前的模块名
- 但是当该模块作为主文件启动时其值为'__main__'
- 通过会通过下面的方式书写测试代码:
包的使用
- __init__.py文件是一个目录称为包的标志,即使内容为空
- 可以简化使用者对包内容的导入复杂度
- 定义:多个模块放在一个目录下,这个目录下必须有一个__init__.py文件,那么这个目录就是一个包
- 说明:
第三方模块的使用
pip -h/--help # 查看帮助文档pip install 包名 # 安装指定软件包pip uninstall 包名 # 卸载指定软件包pip list # 列表显示所有的安装包pip show 包名 # 显示指定包的详情
- 说明:安装失败通常是安装目录没有权限或断网
- 安装工具:pip
- pip使用:
更多相关文章
- MySQL 的日期和时间函数
- Oracle中有哪些指导模块(Advisor)?
- Nginx基于TCP/UDP端口的四层负载均衡(stream模块)配置梳理
- Python tkinter是什么?GUI编程有哪些?
- ES6 模块知识入门
- 使用频率最高的21条Linux命令,让你多出一半的摸鱼时间,建议收藏
- 2021年北京高新技术企业认定条件及时间
- thinkphp无法加载模块解决办法
- python的time模块