模块

一.什么是模块:

    模块就是别人写好的代码,放在一个py文件里,给你使用

二.模块有三种:

    内置模块 / 第三方模块 / 自定义模块

三.内置函数:  

    是每一个py程序在启动的时候都会加载到内存空间中的

四.内置模块:

    以文件的形式存储在硬盘中,你用到 / 导入的时候才开始加载到内存

五.你的py文件名永远不准和模块的名字一样

一.time 时间模块

时间在程序中有什么用:

      计算代码执行用时,测试效率

      日志:程序执行(用户的行为)的记录

       定时器:记录用户的重要时间:出生日期/注册日期/入职日期

python程序中,时间一共有三种格式:

      时间戳时间,float时间 :1542072130.3895912 : 给计算机用的
                                 英国伦敦 1970-1-1 0:0:0  0时区
                             北京时间 1970-1-1 8:0:0
      构化时间(tuple时间)
         格式化时间,str时间 : '2018-11-13 9:21:50':给用户看的

s=time.time() 时间戳 (系统时间)

s = time.strftime("%Y / %m / %d  %H : %M: %S") 格式化时间

s = time.localtime() 结构化时间

时间戳转换成格式化时间

import time
 t = time.localtime(188888) #结构化
 s = time.strftime("%Y / %m / %d  %H : %M : %S" , t) #格式化
 print(s) 
格式化转成时间戳
import time
s="2020-10-01 12:18:12" t=time.strptime(s,"%Y / %m / %d / %H : %M : %S") 结构化时间 print(time.mktime(t)) 转化时间戳

  ⽇期格式化的标准:

%y 两位数的年份表示(00-99) 
%Y 四位数的年份表示(000-9999) 
%m 月份(01-12) %d 月内中的⼀天(0-31) 
%H 24小时制小时数(0-23) 
%I 12小时制小时数(01-12)
%M 分钟数(00=59)
%S 秒(00-59) 
%a 本地简化星期名称 
%A 本地完整星期名称
%b 本地简化的⽉月份名称 
%B 本地完整的⽉月份名称
%c 本地相应的⽇日期表示和时间表示 
%j 年年内的⼀一天(001-366) 
%p 本地A.M.或P.M.的等价符
%U ⼀一年年中的星期数(00-53)星期天为星期的开始
%w 星期(0-6),星期天为星期的开始 
%W ⼀一年年中的星期数(00-53)星期⼀一为星期的开始 
%x 本地相应的⽇日期表示 
%X 本地相应的时间表示 
%Z 当前时区的名称 
%% %号本

计算时间差练习: 

    练习一

1.显示当前时间24小时之前的 年月日 时分秒

方法一 :
import time
time_now = time.time()    print(time_now)     print(60*60*24) div_time = time_now - 86400     print(div_time) struct_t = time.localtime(div_time) print(time.strftime("%Y-%m-%d %H:%M:%S",struct_t))

方法二:
st_now = time.localtime()
print('%s-%s-%s %s:%s:%s'%(st_now.tm_year,st_now.tm_mon,
                            st_now.tm_mday - 1,
                            st_now.tm_hour,st_now.tm_min,
                            st_now.tm_sec
                            ))

    练习二  

2.显示当前月的第一天的0:0:0的时间戳时间
 import time 
 st_now = time.localtime()
 str_t1 = time.strftime('%Y-%m',st_now)
 time_tu = time.strptime(str_t1,'%Y-%m')
 print(time.mktime(time_tu))

 str_t2 = time.strftime('%Y-%m-1 0:0:0',st_now)
 time_tu = time.strptime(str_t2,'%Y-%m-%d %H:%M:%S')
 print(time.mktime(time_tu))

 二.random 随机模块 

取随机小数:

import random
print(random.random())      # (0,1) 0到1之间的小数
print(random.uniform(1,10)) # (n,m) n到m之间的小数

取随机整数:*****

 import random 
print(random.randint(0,1)) # [n,m] 包即含n又包含m print(random.randrange(0,5)) # [n,m) 顾头不顾尾 print(random.randrange(0,5,2)) # [n,m) 还可以取步长 0到5每俩个取一个

随机抽取:

 import random 
l = [1,2,'abc',{'k':'v'},(1,2,3)]
print(random.choice(l)) 可以抽取任意一个值 print(random.sample([1,2,'abc',{'k':'v'},(1,2,3)],3))随机抽取三个,参数给几个就随机抽取几个
从列表里面 choice 3次 和 sample(l,3) 概率不一样

打乱顺序:

 import random 
l = [1,2,'abc',{'k':'v'},(1,2,3)] random.shuffle(l) print(l)

六位纯数字验证码:

import random
def get_code(n=6):
    s = ''
    for i in range(n):
        num = random.randint(0,9)
        s+=str(num)
    return s

print(get_code(6))

4位字母+数字的验证码:  

import random
def code(n=4):
    end = ''
    for i in range(n):
        num = str(random.randint(0,9))
        alpha_up = chr(random.randint(65,90))
        alpha_low = chr(random.randint(97,122))
        aim = random.choice([num,alpha_up,alpha_low])
        end += aim
    return end
print(code())

四位字母加数字和六位字母加数字:

 import random
 def code(n=4,alpha = True):
     end = ''
     for i in range(n):
         aim = str(random.randint(0,9))
         if alpha:
             alpha_up = chr(random.randint(65,90))
             alpha_low = chr(random.randint(97,122))
             aim = random.choice([aim,alpha_up,alpha_low])
         end += aim
     return end
 print(code(n=6,alpha=False)) #六位数字
 print(code()) #不写默认四位数字+字母
抢红包,用户输入红包金额和个数,可以生成n个随机金额的红包:
import random
def red_box(money,n):
    lst = []
    for i in range(n):
        num = random.randint(1,10000)
        lst.append(num)
    sum_m = sum(lst)
    percent_lst = [num/sum_m for num in lst]
    for per in percent_lst:
        print(round(per*money,2))
red_box(200,10)

三. os 操作系统交互的模块

open 操作系统提供给你的机制 能够在python中操作文件

文件和文件夹相关:

os.remove()  删除一个文件
os.rename("oldname","newname") 重命名文件/目录
os.listdir("dirname") 列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.rmdir("dirname") 删除单级空目录,若目录不为空则无法删除,报错
os.mkdir("dirname") 生成单级目录
os.removedirs("dirname")若目录为空,则删除,并递归到上一级目录,一次类推
os.makedirs("dir1 /dir2") 可生成多层递归目录
os.stat("path / filename")   获取文件 / 目录信息
   print(os.stat(r'E:s17day171.今日内容.py'))  r转义

stst 结构:
st_size: 普通文件以字节为单位的大小,包含等待某些特殊文件的数据
st_atime:上次访问的时间
st_mtime:最后一次修改的时间

操作系统,python工作目录相关的:

os.system("dir") 运行shell命令,直接显示
os.popen("dir").read() 运行shell命令,获取执行结果
  ret=os.popen("dir")
  print(ret.read())
os.getcwd()当前python的工作目录
       这个程序是在那个路径下运行的,当前工作目录就是哪个路径
        open("test","w").close()
       工作目录:你创建文件/创建文件夹实际上都是跟着工作目录走的
       和你当前执行的这个文件并没有关系  
os.chdir("dirname")改变当前脚本工作目录,相当于shell下cd

 

在python中执行操作系统的命令:

os.path.join("绝对路径","文件名/文件夹")  拼接目录
os.path.abspath 获取当前文件的规范的绝对路径
os.path.split 将path分割成目录和文件名二元组返回
os.path.exists 如果path存在,返回True,如果path不存在,返回False
os.path.isfile 如果path是⼀一个存在的⽂文件,返回True。否则返回False
os.path.isdir  如果path是⼀一个存在的⽬目录,则返回True。否则返回False
os.path.getsize 返回past的大小

  

 

原文地址:https://www.cnblogs.com/baoshuang0205/p/10051719.html