zhangyaqian

导航

 
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:\code\SH_fullstack_s1\day16\包的使用part3\dir')
 
二、常见模块
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('\r%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:\code\SH_fullstack_s1\day15'
)
 
解压缩
import tarfile
t=tarfile.open('day15_bak_2018-04-08.tar.gz','r')
t.extractall(r'D:\code\SH_fullstack_s1\day16\解包目录')
t.close()
 
f、sys模块
sys.argv
sys.path
 
模块内部的一般格式:
import 放在一起
 
from import放在一起
 
全局变量的定义
 
功能函数的定义
 
if __name__==’__main__’:
    func()
 
posted on 2018-04-08 15:32  zhangyaqian  阅读(311)  评论(0编辑  收藏  举报