Python时间模块和第三方模块的的安装。
time
- sleep:睡眠
print('开始计时')
# 睡眠指定的秒数,可以是小数
time.sleep(3)
print('时间到')
- time:获取时间戳
# 获取时间戳(从1970-01-01 00:00:00到此刻的秒数)
t = time.time()
# print(t)
- localtime:将时间戳转换time.struct_time对象
# 将一个时间戳转换为日期时间对象(time.struct_time)
# 当不传时间戳时,默认转换当前时间,包含时区
local_time = time.localtime()
# 可以通过属性访问成员
print(local_time.tm_hour)
# 也可以通过下标进行访问
print(local_time[0])
- gmtime:将时间戳转换time.struct_time对象
# 将时间戳转换为日期时间对象(time.struct_time),不带时区
gt = time.gmtime()
print(gt)
- mktime:根据年月日等信息创建时间戳
# 根据年月日等信息,创建一个时间戳
t = time.mktime((2018, 11, 26, 11, 1, 50, 0, 330, 0))
print(t)
- timezone:
# 0时区与当前系统时区相差的秒数
print(time.timezone)
- strftime:对time.struct_time对象进行格式化
# 将一个时间转换为特定格式显示,默认转换当前时间
# print(time.asctime())
'''
格式化处理
%Y:年(4位)
%y:年(2位)
%m:月
%d:日
%D:月/日/年
%H:时
%M:分
%S:秒
%w:星期
%W:本周是今年的第几周
'''
print(time.strftime('%D', local_time))
print(time.strftime('%Y-%m-%d %H:%M:%S', local_time))
calendar
- 示例:
import calendar
# 返回一年的日历
c = calendar.calendar(2018, w=3, l=2, c=2, m=2)
# print(c)
# 返回某一年的某一月的日历
m = calendar.month(2018, 11)
# print(m)
# 判断闰年
print(calendar.isleap(2008))
# 两个年份之间的闰年数量,区间:[起始,结束)
print(calendar.leapdays(2000, 2008))
print(calendar.leapdays(2000, 2009))
datetime
- date
from datetime import date
import time
# 创建对象
d1 = date(2018, 11, 26)
# print(d1, type(d1))
d2 = date.today()
# print(d2)
d3 = date.fromtimestamp(time.time())
# print(d3)
# 标准格式显示
print(d1.isoformat())
# 日历显示:(年,第几周,星期)
print(d2.isocalendar())
# 获取星期,标准格式1~7
print(d3.isoweekday())
# 获取星期,格式0~6
print(d3.weekday())
# 格式化显示
print(d3.strftime('%Y/%m/%d'))
# 提取单独的年月日
print(d3.year, d3.month, d3.day)
# 转换为time.struct_time对象
print(d3.timetuple())
- time
from datetime import time
# 创建对象
t = time(1, 2, 3)
print(t, type(t))
print(str(t))
# 单独获取时、分、秒
print(t.hour, t.minute, t.second)
# 格式化显示
print(t.strftime('%H::%M::%S'))
- datetime
from datetime import datetime
import time
# 创建对象
dt = datetime(2018, 11, 26, 14, 53, 52)
# 当前时间,带时区
dt2 = datetime.now()
# 当前时间,不带时区
dt3 = datetime.utcnow()
# 转换时间戳
dt4 = datetime.fromtimestamp(time.time())
# print(dt4)
# 提取日期
d = dt.date()
print(d, type(d))
# 提取时间
t = dt.time()
print(t, type(t))
# 转换成时间戳
print(dt.timestamp())
# 格式化显示
print(dt.strftime('%Y/%m/%d %H/%M/%S'))
- timedelta
from datetime import timedelta, datetime
td = timedelta(seconds=3600)
td2 = timedelta(days=2)
dt1 = datetime(2018, 11, 26, 15, 6, 10)
dt2 = datetime(2018, 11, 25, 14, 6, 10)
td3 = dt1 - dt2
# print(td3, type(td3))
dt3 = dt1 + td2
# print(dt3, type(dt3))
# 提取天数
print(td3.days)
# 提取秒数(天以外的)
print(td3.seconds)
# 总共的秒数
print(td3.total_seconds())
模块使用
- 定义:模块就是一个工具包,里面可以包含函数、类库等,使用时导入即可。
- 分类:
- 标准库:os、sys、random等
- 自定义:自己根据需要书写的模块
- 第三方:就是别人写好的,可以直接使用,但是需要提前安装。
- 语法:
# 导入模块
import time
# 导入模块中指定的内容
from time import sleep
# 带入模块,并且起别名
import random as rdm
# 导入模块中的指定内容,并且起别名
from random import randint as rint
- as
- 使用as可以起别名,让导入的内容变得简单易记
- 使用as可以解决多个模块下标识符冲突问题
- 模糊导入
# 模糊导入,导入该模块中__all__列表指定的内容
# 不建议使用:
# 1.不知道导入了什么内容
# 2.多个模块中有同名的内容无法处理
from random import *
- 自定义模块
- 新建一个文件(文件名不要与其他模块同名)
- 新建的文件名(除了后缀)就是模块名
- 导入的方式与其他模块一样
- 模块名(文件名)就是命名空间,同一模块下的标识符不能同名,不同的模块下的标识符可以同名
- 多个模块有相同标识符,可以直接导入模块,也可以使用as起别名
- 测试模块
# 直接执行此模块,值为__main__
# 被其他模块导入,值为模块名
# print('模块名:', __name__)
# 模块测试内容可以这么写
# 当直接运行此模块时会执行,当被其他模块导入时不会执行
if __name__ == '__main__':
print('模块测试内容')
- 包的使用
- 定义:具有
__init__.py
文件的多个模块的文件夹 - 说明:
-
__init__.py
是一个文件作为包的标志,即使该文件内容为空 - 包文件可以减少导入的复杂度
- 第三方模块安装
- 工具:
pip
- 使用:
pip -h/--help # 查看帮助
pip install 包名==版本 # 安装指定的包(可以指定版本)
pip install -r requirements.txt # 读取文件内容,根据内容进行安装
pip uninstall 包名 # 卸载指定的包
pip list # 查看已安装的包
pip show 包名 # 查看指定的包
pip freeze # 查看当前系统安装的包及版本
pip freeze > requirements.txt # 将系统环境冷冻
- 说明:
- 安装出错的原因通常是没有连网或安装目录没有写的权限
- 软件安装目录:
C:\Program Files\Python36\Lib\site-packages
- 若安装一直失败,可以先从
https://www.pypi.org
下载下来然后再安装,如:pip install xxx.whl
- 也可以使用pycharm进行软件包的安装
- 若觉得网速不好,可以改为国内的软件源