常用模块
Posted hmm1995
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常用模块相关的知识,希望对你有一定的参考价值。
模块module:
定义:
用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就是.py 结尾的Python文件(文件名:test.py 对应的模块名:test)
导入方法:(必须是同级目录)
1. import module_alex print(module_alex.name) module_alex.say() 2. import module1_name,module2_name 3. from module_alex import * #导入module_alex所有代码 变量 #与1区别 import module_alex print(module_alex.name) module_alex.say() from module_alex import * 相当于copy一份代码 直接 print(name) say() 风险:如果当前文件有相同方法 覆盖被导入的方法 执行当前方法 4.from module_alex import 方法 as 别名 from module_alex import 方法 as 别名1,别名2
import 本质
导入模块的本质就是把python文件解释一遍
包 package:
定义:
用来从逻辑上组织模块的,本质就是一个目录(必须带有一个_init_.py文件)
导入一个包就是在解释(执行)包下面的init.py文件
导入方法(同级目录导入):
import package_test
不同级别导入:
1 导入同级.py
-- Day ----day4 ... ----day5 ----module_test包 -----main.py ----package_test包 -----_init_.py ----module_alex.py
import module_alex--->module_alex.py--->找module_alex.py的路径--->sys.path中定义搜索路径
实现不同级别导入 就要让sys.path中有它的路径
os.path.abspath(_file_)找到最低的main.py
os.path.dirname(os.path.abspath(_file_))找到main.py的上级目录 (module_test包)
os.path.dirname(os.path.dirname(os.path.abspath(_file_))) 找到main.py的上级的上级目录 该目录下直接包含 说明找到了(day5)
import sys,os print(sys.path) x=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(x) #追加路径 import module_alex module_alex.say_hello()
2.day4中的test.py 导入 day5中包
-- Day ----day4 test.py ----day5 ----package_test包 -----_init_.py -----test1.py ----module_alex.py
##test.py import sys,os x=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(x) #追加路径 from day5 import package_test package_test.test1.test() ------------------------ ##_init_.py # import test1 #test1=‘test1.py all code‘ .test1.test() from . import test1 ‘‘‘ def test(): print(‘in the test1‘) ‘‘‘ ------------------------ ##test1.py def test(): print(‘in the test1‘)
3.优化导入
----day5 ----module_alex.py(写有test()) ----test.py
直接from 不用重复检索
------------- module_test.py----------- def test(): print(‘in the module‘) ------------- test.py----------- # import module_test from module_test import test def logger(): # module_test.test() test() print(‘in the logger‘) def search(): # module_test.test() test() print(‘in the search‘)
模块分类:
1. 标准库 sys os
2. 开源模块 下载
3. 自定义模块 自己写的python文件
标准库:时间模块 time与datetime
在Python中,通常有这几种方式来表示时间:
- 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。
- 格式化的时间字符串(Format String)
- 结构化的时间(struct_time):struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天,夏令时)
UTC世界标准时
import time print(time.time()) # 时间戳:1487130156.419527 print(time.sleep())#睡几秒 print(time.strftime("%Y-%m-%d %X")) #格式化的时间字符串:‘2017-02-15 11:40:53‘ print(time.altzone) #返回与utc时间的时间差,以秒计算print(time.asctime()) #返回时间格式"Fri Aug 19 11:14:16 2016", # 将一个时间戳转换为当前时区本地的struct_time。secs参数未提供,则以当前时间为准。 time.localtime()#本地时区的struct_time time.localtime(1473525444.037215) #gmtime([secs]) 和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区的struct_time。 time.gmtime() #UTC时区的struct_time time.gmtime(1473525444.037215) x=time.localtime(123213123) print(x) print(x.tm_year) print(‘this is 1973 day:%d‘ %x.tm_yday) # 字符串格式 转成 struct时间对象格式 完全自定义格式 string_2_struct = time.strptime("2016/05/22","%Y/%m/%d ") print(string_2_struct) #将struct时间对象转成时间戳 struct_2_stamp = time.mktime(string_2_struct) print(struct_2_stamp) #将struct_time格式转成指定的字符串格式 print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()) ) #将时间戳转为字符串格式 print(time.gmtime(time.time()-86640)) #将utc时间戳转换成struct_time格式
以上是关于常用模块的主要内容,如果未能解决你的问题,请参考以下文章