zoukankan      html  css  js  c++  java
  • random os 序列化 模块模块 随机选择

    # 1 random 模块 随机选择
    # import random
    #随机取小数
    # ret = random.random() #空是0到1之间的小数字
    # print(ret)
    # # 0.07997289873078917
    # uniform 统一的
    # print(random.uniform(10,12))
    # 11.341669118364248
    # 随机取整数
    # 1print(random.randint(1,10))
    # 5 随机整取1 到10 的数字
    # 2
    # print(random.randrange(5))
    # 随机整取0 到4 的数字1个数字
    # print(random.randrange(1,5))
    # 随机整取1到4 的数字1个数字
    # print(random.randrange(2,8,2))
    # 随机整取2到8的步长为2的1个数字

    # 3choice 和sample
    # print(random.choice('abc'))
    # 随机整取a到c 的数字1个数
    # print(random.sample([1,'23',44,[4,5]],2))
    # 随机整取的数字2数
    # 4 改变原来的列表顺序 用于抽奖 洗牌 shuffle
    # 打乱一个序列的顺序
    # item=[1,3,5,7,9]
    # random.shuffle(item) #改变了原列表
    # print(item)

    # 题目 随机取6个数字和字母 并组成字符串 注意

    # chr 转换 字母acim 转换到字母
    # A-Z 65-90
    # a -z 97-122
    # li = []
    # for i in range(6):
    # num = str(random.randrange(0,10)) #或者 random.randint(0,9)
    # alpha_lower = chr(random.randint(97,122))
    # alpha = chr(random.randint(65,90))
    # ret = random.choice([num,alpha,alpha_lower])
    # li.append(ret)
    # print(''.join(li))


    # os 模块
    # import os
    #和系统路径有关的
    # 1 print(os.getcwd()) #*****
    # 获取当前的工作路径 D:python 资料171017每天视频资料day20day20
    # os.mkdir('dir11')
    # 在此基础上在创建一层目录
    # os.mkdir('dir11\dir22')
    # 再上一级新建一个目录
    # os.makedirs('dir3\dir4')
    # 同时创建两个以上目录
    # os.rmdir('dir1')
    # 删除一级的目录
    # os.removedirs('dir3\dir4')
    # 删除两层以上的目录
    # print(os.stat('dir11'))
    # 路径的详细信息



    # os.chdir(r'C:Users')
    # print(os.curdir)
    # print(os.pardir)
    #和系统文件夹和文件相关的
    # os.mkdir('dir1')
    # os.makedirs('dir3\dir4')
    # os.rmdir('dir3\dir4')
    # os.removedirs('dir3\dir4')
    # os.remove('文件路径')
    # os.rename('文件路径')
    #print(os.listdir(r'C:UsersAdministratorPycharmProjects全栈s8'))
    #和操作系统特征相关的
    # print(os.stat(r'C:UsersAdministratorPycharmProjects全栈s8day21'))
    # print(os.sep) #/user/bin/
    #拼目录 C:Python36python ihaohahaha
    # C:Python36Scripts;C:Python36
    # print(os.environ)


    # 序列化模块
    json

    # 序列化
    # 序列化方法
    # 格式转换
    # 把python中的数据转换成str —— 序列化
    # 可以str转换成python的数据 —— 反序列化
    # s_dic = str({'k':'v'})
    # print(repr(s_dic))
    # eval 的用法 专门处理字符串的 可以把字符串的里面的
    # print(repr(eval(s_dic)))
    # "{'k': 'v'}"
    # {'k': 'v'}

    # 序列化方法
    # 1 json #json 所有的语言都通用,它能序列化的数据是有限的:字典列表元组
    #序列化中的内容只能包含:字典 列表 数字 字符串
    # 如果是元组——自动转成列表的样子
    # import json

    #1-1 json.dumps() 转化成字符串
    # ret = json.dumps({'k':(1,2,3)})
    # print(repr(ret),type(ret))
    # '{"k": [1, 2, 3]}' <class 'str'>
    #1-2 json.loads() 则和它相反的 把字符转换成原来的字典
    # ret2 = json.loads(ret)
    # print(repr(ret2))
    # {'k': [1, 2, 3]}
    #2-1json.dump() 写文件 写入的是字符串
    # f = open('json_file','a')
    # json.dump({'k':'v'},f)
    # f.close()

    # 2-2json.load() 读文件 输出的是原文件的类型
    # with open ('json_file')as f:
    # ret = json.load(f)
    # print(ret)
    # 返回一个字典 {'k': 'v'}


    # 二
    # import pickle
    #pickle是py特有的 用法一模一样
    #pickle ---- 序列化任何数据类型,python专有的不能和其他语言兼容,

    #dumps
    #loads
    #dump
    #load
    # 结果是bytes
    # import pickle #用pickle序列化的数据,反序列化也必须用pickle
    # ret = pickle.dumps({1,2,3,4})
    # print(ret)
    # b'x80x03cbuiltins set qx00]qx01(Kx01Kx02Kx03Kx04ex85qx02Rqx03.'

    # 三 shelve

    #shelve 只提供一个open,shelve.open('文件名')拿到一个文件句柄,这个文件句柄就
    # 可以当做字典操作
    #正常情况下shelve打开的文件句柄感知不到值的修改,设置writeback = True就可以保存修改内容了
    #正常情况下不支持多个人同时写,支持多个人同时读,如果只是读的化,就设置flag=‘r’

    import shelve
    # 写入文件
    f = shelve.open('shelve_file')
    f['key'] = {'int':10, 'float':9.5, 'string':'Sample data'} #直接对文件句柄操作,就可以存入数据
    f.close()

    # import shelve
    # f1 = shelve.open('shelve_file')
    # existing = f1['key'] #取出数据的时候也只需要直接用key获取即可,但是如果key不存在会报错
    # f1.close()
    # print(existing)

    #不支持多个人同时写,支持多个人同时读,如果只是读的化,就设置flag=‘r’
    # import shelve
    # f = shelve.open('shelve_file',flag='r')
    # f['key'] = {'int':10, 'float':9.5, 'string':'Sample data'} #直接对文件句柄操作,就可以存入数据
    # f.close()

    # f1 = shelve.open('shelve_file')
    # print(f1['key'])
    # f1['key']['new_value'] = 'this was not here before' #改
    # f1.close()
    #
    # f = shelve.open('shelve_file',flag='r')
    # print(f['key'])
    # f.close()

    #正常情况下shelve打开的文件句柄感知不到值的修改,设置writeback = True就可以保存修改内容了
    # import shelve
    # f2 = shelve.open('shelve_file', writeback=True)
    # print(f2['key'])
    # f2['key']['new_value'] = {1,2,3}
    # f2.close()
    # import shelve
    # f = shelve.open('shelve_file',flag='r')
    # print(f['key'])
    # f.close()
    #和操作系统的命令相关 —— dir cd
    # os.system('dir') #没有返回值,且直接执行代码,把结果直接输出
    # ret = os.popen('dir') #如果有结果就将结果返回回来
    # print(ret.read()) #ret.read()获取结果

    #os.path
    # ret = os.path.split(r'C:UsersAdministratorPycharmProjects全栈s8day21os.py')
    # ret = os.path.basename(r'C:UsersAdministratorPycharmProjects全栈s8')
    # ret = os.path.isfile(r'C:UsersAdministratorPycharmProjects全栈s8')
    # ret = os.path.isfile(r'C:UsersAdministratorPycharmProjects全栈s8day213.os模块.py')
    # ret = os.path.isdir(r'C:UsersAdministratorPycharmProjects全栈s8day213.os模块.py')
    # ret = os.path.isdir(r'C:UsersAdministratorPycharmProjects全栈s8')
    # ret = os.path.join(r'C:UsersAdministratorPycharmProjects全栈s8','day21','3.os模块.py')
    # ret = os.path.getsize(r'C:UsersAdministratorPycharmProjects全栈s8day213.os模块.py') #文件
    # ret = os.path.getsize(r'C:UsersAdministratorPycharmProjects全栈s8day21')
    # print(ret)

  • 相关阅读:
    Fast polling using C, memcached, nginx and libevent
    为什么MongoDB可以替代MySQL?
    comet server 的介绍及方案选型
    多任务服务器架构设计
    基于libev面向分布式数据系统的C10K服务器设计
    libev & libevent简介
    memcached、redis、mysql、mongodb结合架构数据库系统
    删除数组中的重复元素
    不用运算符比较两个int数的大小
    JDBC之简介
  • 原文地址:https://www.cnblogs.com/xiaoluoboer/p/7840517.html
Copyright © 2011-2022 走看看