zoukankan      html  css  js  c++  java
  • 模块

    * shelve序列化 * shutil模块

    1.1)就是模块夹,存放一些模块,包下必有__init__.py文件
    2)python2中没有__iinit__就报错 python3中可以没有
    使用包时import后不能出现点
    导入包使用*时在__init__中控制 ,all=[]

    模块:

    1. 自定义模块:一个py文件就是一个自定义的模块
      import 导入: 导入多个文件
      import xxx as 别名
      import 是全部拿过来了

    2.from xxx import xx,oo,bb,tt
    从xxx模块导入了xx
    from xxx import xx as x1,oo as o1,bb as b1,tt as t1
    从xxx模块导入了xx
    from xxx import * 不推荐使用*

    3.all = ['可以被*导入的内容,是一个列表']

    1. name 在自己本文件中 name 就是'main'
      当做模块被调用的时候 name__就是文件名
      5.name
      1) 在本文件中__name
      获取的就是'main',这个时候咱们就可以做一些测试了
      2) 这个文件被当做模块导入的时候.name 就这个文件的名字
      3) if name == 'main': 启动接口
      print('在本文件运行')

    时间模块

    三个时间的互相转换,这个图一定要记住



    用代码来实现的相互转换

    日志模块

    手动版的

    自动版的,用的时候直接复制粘贴就ok!

    json模块

    pickle模块

    这张图一定要记熟悉

    1.Json和pickle的区别

    json是字符串通用的;pickle是字节,是pytho自己的
    2.json中和下面一样,
    dump load

    import json
    f=open('text','w',encoding='utf-8')
    lst=[1,2,3]
    s=json.dump(lst,f)
    import json
    f=open('text','r',encoding='utf-8')
    s=json.load(f)
    print(type(s))
    

    Dumps loads

    import pickle
    lst=[1,2,5]
    s=pickle.dumps(lst)
    print(s)
    lst=[1,2]
    a=pickle.loads(s)
    print(type(a))
    

    dump load

    import pickle
    lst=[2,5,8]
    f=open('text','wb')
    pickle.dump(lst,f)
    f=open('text','rb')
    s=pickle.load(f)
    print(type(s))
    

    random随机数

    chr是字母,可以做随机数

    import random
    print(chr(random.randrange(65,91)))
    print(chr(random.randrange(97,123)))
    print(chr(random.randrange(65,91)))
    print(chr(random.randrange(65,91)))
    

    小数:

    Round(33.254,2)  保留2位
    print(random.random())      #0-1之间的小数    
    print(random.uniform(1,5))  #1-5之间的小数
    randint(1,36)随机整数   randrange(1,10,2)范围 随机奇数
    choice(lst) 可迭代对象,只拿一个  
    choices(lst,k=2) 可以出现多个,但是容易重复
    sample(lst,k=3) 可以出现多个,不重复
    random.shuffle(lst)  # 顺序打乱   洗牌
    print(lst)
    

    os 模块

    操作系统做交互用的

    import os
    os.listdir('文件路径')列出指定目录下的所有文件和子目录,并以列表方式打印
    os.makedirs(‘a/b/c’)     生成多层递归目录
    os.removedirs(‘a/b/c’)    直接删除多个目录,有内容则不删除
    os.mkdir()         创建单个文件
    os.rmdir()          删除单个文件
    os.remove()          删除文件   
    os.rename("oldname","newname")  重命名文件/目录
    os.pardir     获取当前目录的父目录字符串名:('..')
    os.getcwd()        获取当前工作目录
    os.popen(‘dir’).read()    运行shell命令,获取执行结果
    os.chdir()         改变当前脚本工作目录
    os.environ  获取系统环境变量
    os.path.join(r'D:我的pythonday12作业.py','day14')   拼接
    os.path.abspath() # 返回所在文件夹的绝对路径
    os.path.split(‘路径’)  #路径中的内容分两个 返回一个元祖
    os.path.dirname()  获取的是os.path.split的第一个元素 同下
    os.path.basename(r'D:我的pythonday12作业.py')  获取第二个元素day12作业.py
    os.path.getsize()     #获取文件的大小   坑 文件夹
    os.path.isdir()  # 判断是不是文件夹  存在目录就显示True,不存在显示false
    os.path.isfile()  # 判断是不是文件
    os.path.isabs()  # 判断是不是绝地路径   存在这个文件就显示True,不存在显示false
    
    import os    
    base = os.path.abspath(__name__)  
    print(base)   #D:我的pythondjango测试目录ceshidiscoverson\__main__
    print(os.path.dirname(base)   #D:我的pythondjango测试目录ceshidiscoverson
    discover_dir = os.path.join(aa,'discover')  #D:我的pythondjango测试目录ceshidiscover
    

    sys模块

    sys.path  python的环境变量
    sys.version 查看版本
    sys.argv   #调用的时候 传参数获取命令行参数
    sys.platform  # 查看操作系统的信息  #win10
    

    sys.path.append('c:day01') 干什么?

    把这个'c:day01' 路径添加sys.path中,sys.path,
    将你想直接引用的一个模块(非内置,非当前目录下),你应该将此模块的当前目录添加到sys.path中,可以直接引用了.

    hashlib

    hashilib是用来加密的 ,文件下载时检验文件一致性

    import hashlib
    # 单向  内容 -- > 哈希值
    md5 = hashlib.md5(‘可以加盐’)    # md5('字节')
    md5.update('字节'.encode(‘utf-8’))
    md5.hexdigest()  # 返回一个哈希值  32位
    
    import hashlib
    # 单向  内容 -- > 哈希值
    md5 = hashlib.sha1()    # md5('字节')
    md5.update('字节',encode(‘utf-8’))
    md5.hexdigest()  # 返回一个哈希值 40位
    

    哈希值还有 sha256 sha512, 哈希值越长越安全,越长越慢

    collection模块

    1.namedtuple

    namedtuple 命名元祖

    2.counter计数

    defaultdict默认字典(不常用)

    3.deque

    双向队列 使用list存储数据时
    1)队列 FIFO 先进先出 2)栈 LOFO 后进先出

    from collections import deque
    q = deque(['t','a','c'])
    q.append('x')  #后入
    q.appendleft('y')  #前入
    print(q)  #结果  deque(['y', 't', 'a', 'c', 'x'])    
    

    2)queque 单向队列 队列 栈

    import queue
    q = queue.Queue()  队列容器
    q.put('a')
    q.put('b')
    print(q.get())
    print(q.get())  结果:a  b
    

    shelve序列化

    以字典形式呈现,如果回写不成功早open(writeback=True 或 flag=’r’ )

    import shelve
    f = shelve.open('ss.log')
    f['name'] = 'ss'
    print(f['name'])
    

    shutil

    高级文件模块 压缩功能

    import shutil
    shutil.copyfile(r‘源文件’,r’要拷贝到哪’)
    

    1)递归的去拷贝文件夹 copytree(r‘源文件’,r’要拷贝到哪’)
    2)递归的删除rmtree()
    3)递归的剪切(移动)move()
    4)压缩包种类,“zip”, “tar”, “bztar”,“gztar”
    打包make_archive(‘压缩的文件名’,’种类’,logger=’’)

    confibparser 配置文件

    1)文件+字典的操作
    2)要对文件操作,先读文件
    3)存放开发conf目录下
    4)嵌套的字典

    import configparser
    conf = configparser.ConfigParser()  #创建一个对象
    f = open('db.ini','w')
    conf['DEFAULT'] = {
        'session_time_out':60
    }
    conf['def-2'] = {
        'ip':'186.33.12.05',
        'port':'3306'
    }
    conf.write(f)
    

    先读在修改
    conf.read('db.ini')
    # conf['def-2']['ip']='123' # 内存修改
    # conf.write(open('db.ini','w'))

    print(conf['186-DB']['ip'])    
    # print(conf.get('186-DB','ip'))
  • 相关阅读:
    java.lang.NoSuchMethodError:antlr.collections.AST.getLine() I
    T7 java Web day01 标签HTML
    T6 s1 day19
    T5 s5 Day18
    T5 s4 Day 17
    T5 s3 day16
    T5 s2 Day 15
    T5 s1 day14
    T4 S03 day 12
    T4 S01 day1
  • 原文地址:https://www.cnblogs.com/xm-179987734/p/12304603.html
Copyright © 2011-2022 走看看