1:模块定义
模块:用来从逻辑上组织Python代码(变量,函数、类,逻辑:实现一个功能),本质就是.py结尾的Python文件(文件名:test.py,对应的模块名,test)。
包:本质就是一个文件夹或者是目录(必须带有一个_init_.py文件),包是用来从逻辑上组织模块的。
2.导入方法:
1):import module_test, module_test1 (调用方法的时候,需要module_test. )
2):form moudule_test import * (* 表示所有的方法)(不建议使用,这个就相当于导入了程序。) 容易造成覆盖,出现问题。
3):form module_test import module_ajun as module_ajun_test(作为一个别名来使用)
3:import本质 (路径 搜索和搜索路径)
1) import module_test 相当于把module_test 的所有代码解释一遍,全部传递给module_test. 调用module_test的变量和方法。
2) form moudule_test import name 相当于值调用了name变量,在当前模块,就不需要加前缀了。
总结:导入模块的本质就是把Python文件解释一遍。(import test test=’test.py all code’)
导入包的本质就是执行包下面的_init_.py文件
Import module_name--》mudule_name.py--》module_name.py的路径--》sys.path
os.path.abspath(_file_)=获取 当前目录
os.path.dirname(os.path.abspath(_file_))=获取当前目录的父目录
os.path.dirname(os.path.dirname (os.path.abspath(_file_)))=获取当前目录的父目录 的父目录
form .(点表示当前目录,就是_init_的目录) import 包名
4.导入优化
怎么优化?每次都去找,很浪费时间?
使用from module_test import test 这个方法,节约时间。
5.模块的分类
A:标准库
B:开源模块
C:自定义模块
A标准库
5.1time与datetime 两个库。
1)表示时间,格式化的时间格式:2017-07-28
2)时间戳:从1970.1.1日到现在总共经过了多少秒?
为什么从1970年1月1日开始呢?
3)元祖,共有九个元素表示。
UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。
时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等。
元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素:
1 #Author:ajun 2 import time 3 4 #print(time.process_time())#测量处理器运算时间,不包括sleep时间,不稳定 5 #print(time.altzone) #返回与utc时间的时间差,以秒计算\ 6 #print(time.asctime()) #返回时间格式Wed Jun 28 21:38:29 2017 格式, 7 #print(time.localtime()) #返回本地时间 的struct time对象格式 8 #print(time.gmtime(time.time()-800000)) #返回utc时间的struc时间对象格式 9 #print(time.asctime(time.localtime())) #返回时间格式"Fri Aug 19 11:14:16 2016", 10 #print(time.ctime()) #返回Wed Jun 28 21:38:29 2017 格式, 同上 11 # 日期字符串 转成 时间戳 12 string_2_struct = time.strptime("2017/06/28","%Y/%m/%d") #将 日期字符串 转成 struct时间对象格式 13 print(string_2_struct) 14 # # 15 struct_2_stamp = time.mktime(string_2_struct) #将struct时间对象转成时间戳 16 print(struct_2_stamp) 17 18 #将时间戳转为字符串格式 19 print(time.gmtime(time.time()-86640)) #将utc时间戳转换成struct_time格式 20 print(time.strftime("%Y-%m-%d %H:%M:%S",time.gmtime()) ) #将utc struct_time格式转成指定的字符串格式 21 22 #时间加减 23 import datetime 24 25 print(datetime.datetime.now()) #返回 2017-06-28 21:11:01.433280 26 print(datetime.date.fromtimestamp(time.time()) ) # 时间戳直接转成日期格式 2017-06-28 27 # print(datetime.datetime.now() ) 28 # print(datetime.datetime.now() + datetime.timedelta(3)) #当前时间+3天 29 # print(datetime.datetime.now() + datetime.timedelta(-3)) #当前时间-3天 30 # print(datetime.datetime.now() + datetime.timedelta(hours=3)) #当前时间+3小时 31 # print(datetime.datetime.now() + datetime.timedelta(minutes=30)) #当前时间+30分 32 33 #修改时间 34 c_time = datetime.datetime.now() 35 print(c_time.replace(minute=3,hour=2)) #时间替换)) #时间替换