码迷,mamicode.com
首页 > 其他好文 > 详细

常用模块

时间:2018-12-20 18:54:48      阅读:171      评论:0      收藏:0      [点我收藏+]

标签:port   bsp   sys   下载   必须   格式化   gif   同方   计算   

模块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格式
View Code

 

常用模块

标签:port   bsp   sys   下载   必须   格式化   gif   同方   计算   

原文地址:https://www.cnblogs.com/hmm1995/p/10150609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!