# 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\每天视频资料\day20\day20 # 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:\Users\Administrator\PycharmProjects\全栈s8')) #和操作系统特征相关的 # print(os.stat(r'C:\Users\Administrator\PycharmProjects\全栈s8\day21')) # print(os.sep) #/user/bin/ #拼目录 C:\Python36\python\nihaohahaha # C:\Python36\Scripts\;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]}'#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'\x80\x03cbuiltins\nset\nq\x00]q\x01(K\x01K\x02K\x03K\x04e\x85q\x02Rq\x03.' # 三 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:\Users\Administrator\PycharmProjects\全栈s8\day21\os.py') # ret = os.path.basename(r'C:\Users\Administrator\PycharmProjects\全栈s8') # ret = os.path.isfile(r'C:\Users\Administrator\PycharmProjects\全栈s8') # ret = os.path.isfile(r'C:\Users\Administrator\PycharmProjects\全栈s8\day21\3.os模块.py') # ret = os.path.isdir(r'C:\Users\Administrator\PycharmProjects\全栈s8\day21\3.os模块.py') # ret = os.path.isdir(r'C:\Users\Administrator\PycharmProjects\全栈s8') # ret = os.path.join(r'C:\Users\Administrator\PycharmProjects\全栈s8','day21','3.os模块.py') # ret = os.path.getsize(r'C:\Users\Administrator\PycharmProjects\全栈s8\day21\3.os模块.py') #文件 # ret = os.path.getsize(r'C:\Users\Administrator\PycharmProjects\全栈s8\day21') # print(ret)