python学习总结----时间模块 and 虚拟环境(了解)
time- sleep:休眠指定的秒数(可以是小数)
- time:获取时间戳# 获取时间戳(从1970-01-01 00:00:00到此刻的秒数)t = time.time()print(t)
- localtime:将时间戳转换为对象# 将一个时间戳转换为日期时间(time.struct_time)对象local_time = time.localtime()# print(local_time)# print(local_time.tm_year)# print(local_time[0])
- mktime:根据年月日等信息转换为时间戳# 根据年月日时分秒等转换为时间戳new_time = time.mktime((2018, 7, 31, 10, 37, 38, 1, 212, 0))print(new_time)
- gmtime:功能同localtime# 将时间戳转换time.struct_time,不包含时区gt = time.gmtime()# print(gt)
- timezone:时差# 0时区与当前时区相差的秒数print(time.timezone)
- strftime:将time.struct_time对象格式化显示# 格式化显示# print(time.strftime('%Y-%m-%d %H:%M:%S', local_time))print(time.strftime('%D', local_time))'''%Y:年(4位)%y:年(2位)%m:月%d:日%D:月/日/年%H:时%M:分%S:秒%w:星期(1~7)%W:本周是今年的第几周'''# 特定的显示格式print(time.asctime())calendar- 使用import calendar# 返回一年的日历c = calendar.calendar(2018, w=2, l=2, c=2, m=2)# print(c)# 返回某年的的某月的日历m = calendar.month(2018, 7)# print(m)# 闰年判断print(calendar.isleap(2008))# 两个年份之间的闰年数量,区间:[起始,结束)print(calendar.leapdays(2000, 2008))print(calendar.leapdays(2000, 2009))datetime- datefrom datetime import dateimport time# 创建对象d1 = date(2018, 7, 31)# print(d1)d2 = date.today()# print(d2)d3 = date.fromtimestamp(time.time())# print(d3)# 标准格式print(d1.isoformat())# 日历显示,格式:(年,日,星期)print(d2.isocalendar())# 获取星期,标准格式1~7print(d2.isoweekday())# 获取星期,格式0~6print(d2.weekday())# 格式化显示print(d3.strftime('%Y/%m/%d'))# 转换为包含详细信息的对象(time.struct_time)print(d3.timetuple())
- timefrom 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'))
- datetimefrom datetime import datetimeimport time# 创建对象dt = datetime(2018, 7, 31, 14, 21, 22)# print(dt)# print(type(dt))# 本地当前时间,带时区dt2 = datetime.now()# print(dt2)# 0时区时间,不带时区dt3 = datetime.utcnow()# print(dt3)# 根据时间戳转换dt4 = datetime.fromtimestamp(time.time())# print(dt4)# 提取日期d = dt.date()print(d)print(type(d))# 提起时间t = dt.time()print(t)print(type(t))# 转换为时间戳print(dt.timestamp())# 格式化显示print(dt.strftime('%Y/%m/%d %H/%M/%S'))
- timedeltafrom datetime import datetime, timedeltad1 = datetime(2018, 7, 31, 14, 31, 32)d2 = datetime(2018, 7, 31, 14, 15, 32)delta = d1 - d2print(delta)print(type(delta))# delta2 = timedelta(days=1, hours=1)delta2 = timedelta(seconds=-3600)print(delta2)d3 = d2 + delta2print(d3)# 提取天数print(delta2.days)# 提取除天以外的秒数print(delta2.seconds)# 总共的秒数print(delta2.total_seconds())模块使用- 定义:模块就像工具包一样,里面包含函数、类等,使用时倒入即可。
- 分类:- 标准库:random、os、sys、time等- 自定义:自己根据需要书写的模块- 第三方:就是别人写好的模块,自己可以直接使用,但是需要(pip)进行安装
- 语法:# 导入模块import time# 导入模块中指定的内容from time import sleep# 导入模块并起别名,只能使用别名import random as rdm# 导入模块的指定内容,并起别名from random import randint as rint
- as:- 使用as可以起别名,让导入的所需内容简单易记- 使用as可以解决多个模块下的标识符冲突问题
- 模糊导入:# 模糊导入,会导入该模块下__all__指定的内容# 不建议使用,因为你不知道导入了什么内容from random import *
- 自定义模块- 新建一个文件(文件名不要与其他模块相同)- 新建的文件名(除了后缀)就是模块名- 导入模块的方式与官方的一样- 模块名(文件名)就是命名空间,同一模块下的标识符不能同名,不同模块下的标识符可以同名- 当多个模块下的标识符同名时,可以直接导入模块,也可以导入后起别名
- 测试模块- 每个模块中都有一个变量__name__,表示当前的模块名- 但是当前模块作为启动文件时,其值为__main__- 通常我们这样写测试代码:if __name__ == '__main__':print('测试')
- 包的使用- 定义:多个模块放在同一个目录下,这个目录下必须有一个文件__init__.py,这个目录就是一个包- 说明:- __init__.py文件是一个目录作为包的标志,即使该文件内容为空- 导入时可以简化模块导入的复杂度
- 第三方模块安装- 工具:pip- 使用:pip -h/--help # 查看帮助文档pip install 包名==版本 # 安装指定的包pip install -r 文件 # 安装文件中指定包pip uninstall 包名 # 卸载指定的包pip list # 列表展示已安装的包pip show 包名 # 查看指定的包信息pip freeze # 冷冻当前的环境- 说明:- 软件包安装目录:python安装目录\Lib\site-packages- 安装失败通常是因为没有权限或断网。虚拟环境- 为什么使用虚拟环境?- 在一个环境中不同软件依赖一个包的不同版本,为了进行环境隔离就出现了虚拟环境。
- 安装工具:virtualenv- pip install virtualenv
- 创建虚拟环境:- virtualenv 虚拟环境目录
- 激活虚拟环境:- 运行:虚拟环境目录\Scripts\activate.bat
- 退出虚拟环境:- 运行:虚拟环境目录\Scripts\deactivate.bat
- 快速复制一个虚拟环境:- 冷藏原有的虚拟环境:pip freeze > requeirements.txt- 创建一个新的虚拟环境:virtualenv 虚拟环境名- 激活虚拟环境:虚拟环境目录\Scripts\activate.bat- 安装依赖:pip install -r requirements.txt
posted on 2018-09-08 17:06 liangzhiwen 阅读(...) 评论(...) 编辑 收藏