在前面的几个章节中我们脚本上是用 python 解释器来编程,如果你从 Python 解释器退出再进入,那么你定义的所有的方法和变量就都消失了。
为此 Python 提供了一个办法,把这些定义存放在文件中,为一些脚本或者交互式的解释器实例使用,这个文件被称为模块。
模块是一个包含所有你定义的函数和变量的文件,其后缀名是.py。模块可以被别的程序引入,以使用该模块中的函数等功能。这也是使用 python 标准库的方法。
自定义模块:
为什么要使用模块?
1、从文件级别组织程序,更方便管理
随着程序的发展,功能越来越多,为了方便管理,我们通常将程序分成一个个的文件,这样做程序的结构更清晰,方便管理。这时我们不仅仅可以把这些文件当做脚本去执行,还可以把他们当做模块来导入到其他的模块中,实现了功能的重复利用
2、拿来主义,提升开发效率
同样的原理,我们也可以下载别人写好的模块然后导入到自己的项目中使用,这种拿来主义,可以极大地提升我们的开发效率,避免重复造轮子。
ps:
如果你退出python解释器然后重新进入,那么你之前定义的函数或者变量都将丢失,因此我们通常将程序写到文件中以便永久保存下来,需要时就通过python meet.py方式去执行,此时meet.py被称为脚本script。
1 import 翻译过来是一个导入的意思
代码示列
import meet import meet import meet import meet import meet 执行结果: 只打印一次 from the meet.py
import :
(1)模块名 把这个模块下所有东西全部导入
(2)多个模块名 不建意写在一行
(3) 模块名 as 起个小名
importtttt.py as f
f.read1()
(4)模块名多次导入的时候 实际只导入一次
import os,sys,json 这样写可以但是不推荐 推荐写法 import os import sys import json
(5)导入过来的功能都需要使用模块点的方法去执行
2 from:翻译
from 模块名 import 指定导入内容
from 模块名 import 多个功能
form 导入多个模块的时候要一行一行的导入
from 模块 import* 不建议使用
from 模块 import 功能1as 小名功能2 as 起个小名
from导入的时候,一行导入多个内容 from meet import read1,read2,name
3 from import 与 import对比
from .....import...
好处 :使用起来方便
坏处:容易与当前文件中执行的名字起冲突
4 time模块
time : 翻译过来就是时间的意思
常用访法 1.time.sleep(secs) 推迟指定时间运行 单位为秒 time.time 获取当前时间戳
(1)时间戳: 通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型
(2).格式化字符串时间: 格式化的时间字符串(Format String): ‘1999-12-06’
python中时间日期格式化符号: %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M.的等价符 %U 一年中的星期数(00-53)星期天为星期的开始 %w 星期(0-6),星期天为星期的开始 %W 一年中的星期数(00-53)星期一为星期的开始 %x 本地相应的日期表示 %X 本地相应的时间表示 %Z 当前时区的名称 %% %号本身
(3).结构化时间:元组(struct_time) struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)
把时间戳转化成字符串时间:
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))
首先转换成结构时间 ,然后在转换成字符串时间
print(time.strftime("%Y-%m-%d",time.localtime()))
自己指定要转换的时间
print(time.strftime("2019-1-15","%Y-%m-%d %H:%M"))
# 第一个参数是字符串的时间,要输入格式
t=time.strftime("2019-1-15","%Y-%m-%d %H:%M")
print(time.mktime(t))
mktime 把一个结构化转成一个时间戳
结构化时间
把时间戳转化成结构时间
print(time.gmtime()) #英国伦敦 gmtime (时间戳不写使用默认使用当前的时间)
print(time.localtime())# 本地计算机时间本地时间localtime(时间戳不写使用默认使用当前的时间)
(5)datetime
获取当前日期和时间
from datetime import datetime print(datetime.now()) ''' 结果:2018-12-04 21:07:48.734886 '''
datetime.now()获取当前时间 print(datetime.fromtimestamp(time.time())) # 将时间戳转换成时间类型 print(datetime.strptime('2018-10-1 13:14','%Y-%m-%d %H:%M')) # 字符串转换成一个时间类型 datetime.now() s = datetime.strftime(datetime.now(),'%Y-%m-%d %H:%M:%S') # 把一个时间类型转换成字符串
(6)
timedelta 修改的时间
print(datetime.now() + timedelta(hours=1))
print(datetime.now() + timedelta(days=1))
t = datetime.now() + timedelta(weeks=3)
print(t - timedelta(days=2,hours=13))