zoukankan      html  css  js  c++  java
  • python 常用模块

    一、random模块           

    import random
    # 生成随机小数
    print(random.random())  # 大于0且小于1的小数
    # 0.2594428376868646
    print(random.uniform(1, 4))  # 大于1且小于4的小数
    # 2.6173235045726897
    
    # 生成随机整数
    print(random.randint(0, 7))  #大于0且小于7的整数
    # 6
    print(random.randrange(1, 10, 2))  #大于1且小于10的奇数
    # 5
    
    #随机选择列表中的一个值返回
    print(random.choice([1, 'abc', [1, 'a'], (1, 2)]))
    # abc
    #随机选择多个返回,返回的个数为函数的第二个参数
    print(random.sample([1, 'abc', [1, 'a'], (1, 2)], 2))  # #列表元素任意2个值
    # [[1, 'a'], 'abc']
    
    # 打乱列表顺序
    li = [1,2,3,4,5,6]
    random.shuffle(li)  #打乱的是原列表,不会生成新的列表
    print(li)
    # [3, 4, 2, 6, 5, 1]
    

    二、时间(time)模块     

        常用方法
        time.sleep(5)
        (线程)推迟指定的时间运行。单位为秒。
        time.time()
        获取当前时间戳
    import time
    # 时间戳时间
    print(time.time())
    # 1534767726.0919542
    # 格式化时间
    t = time.localtime()
    print(t)
    # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=20, tm_min=23, tm_sec=49, tm_wday=0, tm_yday=232, tm_isdst=0)
    # 格式化时间
    print(time.strftime('%Y-%m-%d %H:%M:%S'))
    # 2018-08-20 20:37:15
    print(time.strftime('%y-%m-%d %H:%M:%S'))
    # 18-08-20 20:37:15
    print(time.strftime("%c"))  #外国时间格式
    # Mon Aug 20 20:37:15 2018
    
    # 结构化时间
    t = time.localtime()
    print(t)
    # time.struct_time(tm_year=2018, tm_mon=8, tm_mday=20, tm_hour=20, tm_min=45, tm_sec=22, tm_wday=0, tm_yday=232, tm_isdst=0)
    print(t.tm_year)
    # 2018
    
    
    # 时间戳换成字符串
    t = time.localtime(1500000000)  #转为结构化时间
    ret = time.strftime('%y-%m-%d %H:%M:%S', t)
    print(ret)
    # 17-07-14 10:40:00
    
    #字符串时间转时间戳
    t = time.strptime('2008-8-8', '%Y-%m-%d')   #转为结构化时间
    ret = time.mktime(t)
    print(ret)
    # 1218124800.0
    

    三、sys模块                   

        sys 是和Python解释器打交道的

    import sys
    print(sys.argv)     #命令行参数List,第一个元素是程序本身路径
    # x = sys.argv[1]     在命令行传入参数
    print(sys.path)     #返回模块的搜索路径
    

    四、os模块                    

        os是和操作系统交互的模块

    import os
    os.makedirs('a1/a2/a3')    #生成多层递归目录
    os.removedirs('a1/a2/a3')    #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('d1')              #生成单级目录
    os.rmdir('d1')                #删除单级空目录,不为空则删不掉
    

      

    os.system("bash command")  #运行shell命令,直接显示
    os.popen("bash command").read()  #运行shell命令,获取执行结果
    os.getcwd()             #获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname")  #改变当前脚本工作目录;相当于shell下cd


    # 把路径中不符合规范的/改成操作系统默认的格式
    os.path.abspath(path)
    
    # 能够给能找到的相对路径改成绝对路径
    os.path.abspath(path)
    
    # 就是把一个路径分成两段,第二段是一个文件/文件夹
    os.path.split(path)
    
    # 返回path的目录。其实就是os.path.split(path)的第一个元素
    os.path.dirname(path)
    # 返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
    # os.path.basename(path)
    
    # 如果你两个值都需要 os.path.split
    # 如果你只要一个值 os.path.dirname/os.path.basename
    
    # 判断文件/文件夹是否存在
    os.path.exists(path)
    
    # 如果path是绝对路径,返回True
    os.path.isabs(path)
    # 如果path是一个存在的文件,返回True。否则返回False
    os.path.isfile(path)
    
    # 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    os.path.join(path1[, path2[, ...]])
    # 返回path所指向的文件或者目录的最后访问时间
    os.path.getatime(path) 
    # 返回path所指向的文件或者目录的最后修改时间
    os.path.getmtime(path)  
    # 返回path的大小
    os.path.getsize(path)
    

      

     五、序列化模块             

      1.序列化:

       将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化

      2.序列化的目的:

       1、以某种存储形式使自定义对象持久化;
       2、将对象从一个地方传递到另一个地方。
       3、使程序更具维护性。
      

      json 模块     

    import json
    # ret = json.dumps(dict)  # 序列化
    # res = json.loads(ret) # 反序列化
    

      json 在所有的语言之间都通用 : json序列化的数据 在python上序列化了 那在java中也可以反序列化
      能够处理的数据类型是非常有限的 : 字符串 列表 字典 数字
      字典中的key只能是字符串
      json
      dumps loads
      在内存中做数据转换 :
      dumps 数据类型 转成 字符串 序列化
      loads 字符串 转成 数据类型 反序列化
      dump load
      直接将数据类型写入文件,直接从文件中读出数据类型
      dump 数据类型 写入 文件 序列化
      load 文件 读出 数据类型 反序列化
      json是所有语言都通用的一种序列化格式
      只支持 列表 字典 字符串 数字
      字典的key必须是字符串

      pickle模块   

       json & pickle 模块

         用于序列化的两个模块

          json,用于字符串 和 python数据类型间进行转换

          pickle,用于python特有的类型 和 python的数据类型间进行转换

         pickle模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load  (不仅可以序列化字典,列表...可以把python中任意的数据类型序列化)

       pickle模块:

        1.支持在python中几乎所有的数据类型
        2. dumps 序列化的结果只能是字节
        3.只能在python中使用
        4.在和文件操作的时候,需要用rb wb的模式打开文件
        5.可以多次dump 和 多次load

        

    import pickle
    
    dic = {(1,2,3):{'a','b'},1:'abc'}
    dic1 = {(1,2,3):{'a','b'},2:'abc'}
    dic2 = {(1,2,3):{'a','b'},3:'abc'}
    dic3 = {(1,2,3):{'a','b'},4:'abc'}
    with open('pickle_file','wb') as f:
        pickle.dump(dic, f)
        pickle.dump(dic1, f)
        pickle.dump(dic2, f)
        pickle.dump(dic3, f)
    
    with open('pickle_file','rb') as f:
        while True:
            try:
                ret = pickle.load(f)
                print(ret)
            except EOFError:
                break
    

      

  • 相关阅读:
    WCF开发笔记 高版本.Net的坑
    Net Start可以加载驱动
    解决:Windows 2008远程黑屏问题
    Visual Studio 解决方案版本从v12-->v14
    Visual Studio 使用之禁用/启用模板警告
    Windows 10 常用的快捷键及常用指令
    git
    Socket通信原理 很好
    java集合
    JavaEE简介
  • 原文地址:https://www.cnblogs.com/JinMuBaoBao/p/9508173.html
Copyright © 2011-2022 走看看