zoukankan      html  css  js  c++  java
  • 8 Apr 18 包的使用 常用模块

    8 Apr 18
    一、包的使用
    part1:
    import aaa
    '''
    1 产生一个包的名称空间
    2 执行包下的__init__.py(初始化导入)文件,将产生的名字存放于包的名称空间中
    3 在当前执行文件中拿到一个名字aaa,该名字指向包的名称空间
    '''
     
    print(aaa.m1) #aaa.m1 就是问aaa下的.__init__.py要一个名字m1
    aaa.m1.f1()
    print(aaa.bbb.zzz)
    #包是模块的一种组织形式,可放在软件开发目录下。但和软件开发目录无关。
    #模块名约定用全小写
    #包内的模块没有右键运行的需求
     
    part2:
    强调:
    1、在导入时带点的,点的左边必须是一个包,这是导入包特有的语法
    2、包内,模块直接的导入应该使用from。。。import 。。。
    3、from 。。。 import。。。,import后必须是一个明确的名字,没有任何的前缀
     
    例如: from a.b.c.d.f import g.h.x #错误
    1、f左边必须都是包
    2、import后的名字不能有任何前缀
     
    part3:
    绝对导入与相对导入
    绝对导入:以顶级包(nb)作为起始
    相对导入(推荐使用):不需考虑执行文件,.表示当前文件的路径,..表示所在文件上一级目录。用.或者..的方式最为起始(只能在一个包中使用,不能用于不同目录内)
     
    import sys
    sys.path.append(r'D:codeSH_fullstack_s1day16包的使用part3dir')
     
    二、常见模块
    a、time模块
    import time
     
    时间分为三种形式
    1、时间戳 (时间秒数的表达形式, 从1970年开始)
    print(time.time())
    start_time=time.time()
    time.sleep(3)
    stop_time=time.time()
    print(stop_time-start_time)
     
    2、格式化的字符串
    print(time.strftime('%Y-%m-%d %H:%M:%S %p'))
    print(time.strftime('%Y-%m-%d %X %p'))
     
    3、struct_time对象
    print(time.localtime()) # 上海:东八区
    print(time.localtime().tm_year)
    print(time.localtime().tm_mday)
    print(time.gmtime()) # UTC时区
     
    了解的知识
    print(time.localtime(1111111111).tm_hour)
    print(time.gmtime(1111111111).tm_hour)
    print(time.mktime(time.localtime()))
    print(time.strftime('%Y/%m/%d',time.localtime()))
    print(time.strptime('2017/04/08','%Y/%m/%d'))
    print(time.asctime(time.localtime()))
    print(time.ctime(12312312321))

    
    

    
    
    b、datetime模块
    import datetime
     
    print(datetime.datetime.now())
    print(datetime.datetime.now() + datetime.timedelta(days=3))
    print(datetime.datetime.now() + datetime.timedelta(days=-3))
    print(datetime.datetime.now() + datetime.timedelta(hours=3))
    print(datetime.datetime.now() + datetime.timedelta(seconds=111))
    current_time=datetime.datetime.now()
    print(current_time.replace(year=1977))
    print(datetime.date.fromtimestamp(1111111111))
    print(datetime.date.fromtimestamp(time.time()) )
    #时间戳直接转成日期格式 2018-04-08
     
    c、random模块
    import random
     
    print(random.random())            #0,1;大于0且小于1之间的小数
    print(random.randint(1,3))          #大于等于1且小于等于3之间的整数
    print(random.randrange(1,3))       #大于等于1且小于3之间的整数
    print(random.choice([1,'a',[1,2,3]]))   #从定义的列表中随机选取
    print(random.sample([1,2,3,4,5],3))   #列表中元素任选一个与3两两组合
    print(random.uniform(1,3))          #大于1小于3的小数
    item=[1,3,5,7,9]
    random.shuffle(item)               #打乱item的顺序相当于洗牌
    print(item)
     
    生成随机验证码
    import random
     
    def make_code(n=5):
        res=''
        for i in range(n):
            s1=str(random.randint(0,9))
            s2=chr(random.randint(65,90))
            res+=random.choice([s1,s2])
        return res
    print(make_code(10))
     
    d、打印进度条
     
    def progress(percent,width=50):
        if percent > 1:
            percent=1    #防止显示百分数超过100%
        show_str=('[%%-%ds]' %width) %(int(width*percent) * '#')
        print('
    %s %d%%' %(show_str,int(100*percent)),end='')
     
    import time
    recv_size=0
    total_size=1111111
    while recv_size < total_size:
        time.sleep(0.1)
        recv_size+=8096
        percent=recv_size / total_size
    progress(percent)
     
    #
    print('[%-30s]'%'#')  # %-50s, -左对齐, 50宽度为50不够空格补
    print(('[%%-%ds]'%width)%'#') #第一个百分号取消了第二个百分号的特殊含义
     
    num=30
    print('%s%%' %num)    #30%
     
    e、shutil模块
    压缩
    import shutil
    import time
    ret = shutil.make_archive(
        "day15_bak_%s" %time.strftime('%Y-%m-%d'),
        'gztar',
        root_dir=r'D:codeSH_fullstack_s1day15'
    )
     
    解压缩
    import tarfile
    t=tarfile.open('day15_bak_2018-04-08.tar.gz','r')
    t.extractall(r'D:codeSH_fullstack_s1day16解包目录')
    t.close()
     
    f、sys模块
    sys.argv
    sys.path
     
    模块内部的一般格式:
    import 放在一起
     
    from import放在一起
     
    全局变量的定义
     
    功能函数的定义
     
    if __name__==’__main__’:
        func()
     
  • 相关阅读:
    jQuery 自执行函数
    IRelationalOperator空间关系接口简介
    9.2 空间拓扑运算[转]
    解决关于ArcGIS10.2服务手动启动的问题
    Multipart to single part feature
    Multipart polyline to single part lines
    VS2015 C#6.0 中的没有实现/支持的特性
    VS2015 C#6.0 中的那些新特性
    ArcGIS中各种合并要素(Union、Merge、Append、Dissolve)的异同点分析 转载
    FME2010 案例分析: 动态批量转换
  • 原文地址:https://www.cnblogs.com/zhangyaqian/p/py20180408.html
Copyright © 2011-2022 走看看