python中常用的模块的总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、模块和包
a.定义:
模块用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py 结尾的python文件。(例如:文件名:test.py,对应的模块名:test)
包:用来从逻辑上组织模块的,本质就是一个目录(必须带有一个__init__.py的文件)b.导入方法
import module_name
import module_1的本质:是将module_1解释了一遍
也就是将module_1中的所有代码复制给了module_1
from module_name1 import name
本质是将module_name1中的name变量放到当前程序中运行一遍
所以调用的时候直接print(name)就可以打印出name变量的值
代码例子:自己写的模块,其他程序调用,如下所示:
模块module_1.py代码:
复制代码
1 name = "dean"
2 def say_hello():
3 print("hello %s" %name)
调用模块的python程序main代码如下:(切记调用模块的时候只需要import模块名不需要加.py)
import module_1
#调用变量
print(module_)
#调用模块中的方法
module_1.say_hello()
复制代码
这样运行main程序后的结果如下:
1 D:\python35\python.exe D:/python培训/s14/day5/module_test/main.py
2 dean
3 hello dean
4
5 Process finished with exit code 0
import module_name1,module_name2
from module_name import *(这种方法不建议使用)
from module_name import logger as log(别名的方法)
c.导入模块的本质就是把python文件解释一遍
import module_name---->module_name.py---->module_name.py的路径---->sys.path
导入包的本质就是执行该包下面的__init__.py
关于导入包的一个代码例子:
新建一个package_test包,并在该包下面建立一个test1.py的python程序,在package包的同级目录建立一个p_test.py的程序
test1的代码如下:
1 def test():
2 print("int the test1")
package_test包下的__init__.py的代码如下:
1 #import test1 (理论上这样就可以但是在pycharm下测试必须用下面from .import test1)
2 from . import test1
3 print("in the init")
p_test的代码如下:
1 import package_test #执行__init__.py
2 package_test.test1.test()
这样运行p_test的结果:
1 D:\python35\python.exe D:/python培训/s14/day5/p_test.py
2 in the init
3 int the test1
4
5 Process finished with exit code 0
从上述的例子中也可以看出:导入包的时候其实是执行包下的__init__.py程序,所以如果想要调用包下面的python程序需要在包下的__init__.py导入包下面的程序
2、模块的分类
a.标准库
b.开源模块
c.自动以模块
3、时间模块
time与datetime
python中常见的时间表示方法:
a. 时间戳
时间戳:从1970年1月1日00:00:00到现在为止一共的时间数(单位为秒)
>>> time.time()
1472016249.393169
>>>
b. 格式化的时间字符串
c. struct_time(元组)
相互之间的转换关系如下:
1)time.localtime()将时间戳转换为当前时间的元组
>>> time.localtime()
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=13, tm_min=27, tm_sec=55, tm_wday=2, tm_yday=237, tm_isdst=0)
>>>
2)time.gmtime()将时间戳转换为当前时间utc时间的元组
>>> time.gmtime()
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=5, tm_min=35, tm_sec=43, tm_wday=2, tm_yday=237, tm_isdst=0)
>>>
3)time.mktime()可以将struct_time转换成时间戳
>>> x = time.localtime()
>>> x
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=13, tm_min=39, tm_sec=42, tm_wday=2, tm_yday=237, tm_isdst=0)
>>> time.mktime(x)
1472017182.0
>>>
4)将struct_time装换成格式化的时间字符串
>>> x
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=24, tm_hour=13, tm_min=39, tm_sec=42,