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'))
  • 相关阅读:
    oracle触发器
    oracle存储函数
    ****Java程序调用存储过程****
    oracle储存过程--存储过程
    oracle储存过程--游标
    oracle存储过程--流程控制(条件判断和循环遍历)
    InterviewProblems
    RandomAccessFile浅析
    JSP基础——关于中文乱码问题
    基础数据结构——单链表
  • 原文地址:https://www.cnblogs.com/xm-179987734/p/12304603.html
Copyright © 2011-2022 走看看