zoukankan      html  css  js  c++  java
  • Python-29_常用模块复习

    a=1
    """
    json的dumps,loads,dump,load功能总结
    
    json.dumps(x)   把python的(x)原对象转换成json字符串的对象,主要用来写入文件。
    json.loads(f)   把json字符串(f)对象转换成python原对象,主要用来读取文件和json字符串
    json.dump(x,f)  把python的(x)原对象,f是文件对象,写入到f文件里面,主要用来写入文件的
    json.load(file)  把json字符串的文件对象,转换成python的原对象,只是读文件
    
    """
    
    import json
    
    #  json的dumps,loads的功能:
    
    data = {'k1':123,'k2':456}
    s_str=json.dumps(data)  #把data对象序列化成字符串 >>>>>#序列化的过程
    # print(s_str)  #{"k2": 456, "k1": 123}
    # print(type(s_str)) str
    with open("js_new","w") as f:
        f.write(s_str)  #把json的字符串写入到文件js_new
    
    #注:用之前先把上面的写文件的方式给注释掉
    with open("js_new","r") as f:
        aa = json.loads(f.read())   #把字符串重新读到python原来数据对象  >>>>#反序列化过程
        print(aa)
        # print(type(aa)) #<class 'dict'>
    
    
    # json的dump,load的功能:
    
    import json
    data = {'k1':123,'k2':456}
    with open("json_dump","w") as f:
        json.dump(data,f)
    #json.dump(x,f) x是python原来数据的对象,f是文件对象 主要是用来写python对象到文件里面
    
    with open("json_dump","r") as f:
        bb = json.load(f)
        print(bb)
        print(type(bb))  #<class 'dict'>
    #json.read(f) #f是文件对象,把文件对象的数据读取成原来python对象的类型
    json_dump_load_dump_loads
    import os
    
    """
    os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname")  #改变当前脚本工作目录;相当于shell下cd
    os.curdir  #返回当前目录: ('.')
    os.pardir  #获取当前目录的父目录字符串名:('..')
    os.makedirs('dirname1/dirname2')    #可生成多层递归目录
    os.removedirs('dirname1')    #若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
    os.mkdir('dirname')    #生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname')    #删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.listdir('dirname')    #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove()  #删除一个文件
    os.rename("oldname","newname")  #重命名文件/目录
    os.stat('path/filename')  #获取文件/目录信息
    os.sep    #输出操作系统特定的路径分隔符,win下为"\",Linux下为"/"
    os.linesep    #输出当前平台使用的行终止符,win下为"	
    ",Linux下为"
    "
    os.pathsep    #输出用于分割文件路径的字符串 win下为;,Linux下为:
    os.name    #输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
    os.system("bash command")  #运行shell命令,直接显示
    os.environ  #获取系统环境变量
    os.path.abspath(path)  #返回path规范化的绝对路径
    os.path.split(path)  #将path分割成目录和文件名二元组返回
    os.path.dirname(path)  #返回path的目录。其实就是os.path.split(path)的第一个元素
    os.path.basename(path)  #返回path最后的文件名。如何path以/或结尾,那么就会返回空值。即os.path.split(path)的第二个元素
    os.path.exists(path)  #如果path存在,返回True;如果path不存在,返回False
    os.path.isabs(path)  #如果path是绝对路径,返回True
    os.path.isfile(path)  #如果path是一个存在的文件,返回True。否则返回False
    os.path.isdir(path)  #如果path是一个存在的目录,则返回True。否则返回False
    os.path.join(path1[, path2[, ...]])  #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略
    print(os.path.join("D:\python\wwww","xixi"))   #做路径拼接用的
    # D:pythonwwwwxixi
    
    os.path.getatime(path)  #返回path所指向的文件或者目录的最后存取时间
    os.path.getmtime(path)  #返回path所指向的文件或者目录的最后修改时间
    
    """
    os
    import random
    
    print(random.random())  #随机生成一个小于1的浮点数
    
    print(random.randint(1,3))  #[1-3]随机生成1到3的数
    
    print(random.randrange(1,3))    #[1-3)随机生成1到2的数
    
    print(random.choice([1,2,5,7,[22],8]))      #随机在列表中选取一个元素
    
    print(random.sample([1,2,5,7,[22],8],2))    #随机在列表中选取2个元素
    
    print(random.uniform(1,3))      #随机生成1-3的之间的浮点数
    
    print(random.shuffle([1,2,5,7,8]))     #打乱列表中元素的顺序
    
    
    # 随机生成5位数的验证码
    
    def v_code():
        # 随机生成5位数的验证码
        code=""
        for i in range(5):
            num=random.randint(0,9)
            alf=chr(random.randint(65,90))
            add=random.choice([num,alf])
            code+=str(add)
        return code
    print(v_code())
    
    """
    chr() 用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符。
    chr(i)
    chr(68)  # 'D'
    
    """
    random
    import sys,time
    """
    sys.argv     #在命令行参数是一个空列表,在其他中第一个列表元素中程序本身的路径
    sys.exit     #退出程序,正常退出时exit(0)
    sys.version  #获取python解释程序的版本信息
    sys.path     #返回模块的搜索路径,初始化时使用python PATH环境变量的值
    sys.platform #返回操作系统平台的名称
    sys.stdin    #输入相关
    sys.stdout   #输出相关
    sys.stderror #错误相关
    
    sys.modules[__name__]   #调取当前所在的模块
    
    """
    for i in range(1,20):
        sys.stdout.write("#")   # #显示写入
        time.sleep(0.2)
        sys.stdout.flush()     # 把每次写入的东西都给刷新到屏幕
    
    
    def view_bar(num, total):
        rate = float(num) / float(total)
        rate_num = int(rate * 100)
        r = '
    %d%%' % (rate_num, ) #%% 表示一个%
        sys.stdout.write(r)
        sys.stdout.flush()
    if __name__ == '__main__':
        for i in range(0, 101):
            time.sleep(0.1)
            view_bar(i, 100)
    sys
    """
    在python中,通常3种时间的表示
    
    1.时间戳(timestamp):时间戳表示的是从从1970年1月1日00:00:00开始按秒计算的偏移量。
      我们运行“type(time.time())”,返回的是float类型。
    2.格式化的时间字符串  (年-月-日  时:分:秒)
    3.元组(struct_time)结构化时间:struct_time元组共有9个元素共九个元素:(年,月,日,时,
      分,秒,一年中第几周,一年中第几天,夏令时)
    
    """
    import time
    1 # time.time()-----时间戳
    print(time.time())      # 1550036268.3765001
    
    2 # time.localtime(second)-----加上second(时间戳)转换结构化时间,不加则显示当前的结构化时间
    print(time.localtime())
    print(time.localtime(1550036268.3765001))
    
    3 # time.gmtime(second)-----#utc时区加上second(时间戳)转换结构化时间,不加则显示当前的结构化时间
    
    print(time.gmtime())
    print(time.gmtime(1550036268.3765001))
    
    4 # mktime ()-----结构化时间转换为时间戳
    
    print(time.mktime(time.localtime()))
    
    5 # time.ctime(seconds)-----#将加上时间戳转换为时间戳的格式化时间,不加则返回当前的的格式化时间
    
    print(time.ctime())     # Wed Feb 13 13:51:53 2019
    
    6 # time.asctime(p_tuple)-----#加参数是加一个结构化时间,把加的结构化时间转换为格式化时间,不加则返回当前的格式化时间
    
    print(time.asctime())
    print(time.asctime(time.gmtime()))
    
    7 # time.strftime(format,p_tuple)-----#把一个结构化时间转化相应的格式时间
    
    print(time.strftime("%Y-%m-%d %X",time.localtime()))    # 2019-02-13 13:56:45
    
    8 # time.strptime(string,format)-----#把相应的格式时间,转换为结构化时间
    
    print(time.strptime("2015-5-20 22:22:22","%Y-%m-%d %X"))
    
    9 # time.sleep(second)-----#将程序延迟指定的秒数运行
    
    print(time.sleep(2))
    
    10 # time.clock()
    # 这个需要注意,在不同的系统上含义不同。在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。
    # 而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次之后的调用是自第一次调用以后到现在的运行时间,即两次时间差。
    time
  • 相关阅读:
    Multi-Agent Actor-Critic for Mixed Cooperative-Competitive Environments环境代码详解
    zc.buildout构建项目时报错‘AttributeError: '_NamespacePath' object has no attribute 'sort'’
    利用Jenkins打包ISO和QCOW2镜像文件
    解决python pip安装提示"not a supported wheel on this platform"
    Kali 2017.3开启VNC远程桌面登录
    Jenkins邮件扩展插件Email Extension Plugin配置使用
    Jenkins执行sudo权限的设置
    如何解决源码安装软件中make时一直重复打印configure信息
    CentOS 7下安装配置proftpd搭建ftp服务器
    如何使用capedit分割数据包文件
  • 原文地址:https://www.cnblogs.com/newmet/p/10511653.html
Copyright © 2011-2022 走看看