4.random -- 随机模块

  1. a-z:97 ~ 122 A-Z :65 ~ 90
  1. import random
  2. #浮点数
  3. print(random.random())#0~1,不可指定
  4. print(random.uniform(1,10))#1~10#须指定
  5. #整数
  6. print(random.randint(1,10))[1~10]整数,闭区间
  7. print(random.randrange(1,5,2))#(起始,终止,步长)
  8. list1 = [1,2,3,4,5]
  9. print(random.choice(list1)) #随机选择一个元素
  10. print(random.choices(list1,k=2))#选择两个元素,会有重复,k可以超范围
  11. print(random.sample(list1,k=2))#选择两个元素,k不可以超范围。不会有重复,除非只有两个[1,1]
  12. #打乱顺序
  13. list1 = [12,3,4,5,6,7,8,9]
  14. random.shuffle(list1)
  15. print(list1)

5.序列化

1.json 模块

​ 两组4个方法:

​ dumps() :将对象转(序列化)成字符串

​ loads() :将字符串转换(反序列化)成对象

  1. import json
  2. #列表
  3. list1 = [1,22,3,3,45]
  4. str1 = json.dumps(list1)#序列化
  5. print(str1,type(str1))
  6. list2 = json.loads(str1)#反序列化
  7. print(list2,type(list2))
  8. #字典
  9. dict1 = {"k1":"无聊""k2":2}
  10. str2 = json.dumps(dict1)#汉字会变成ASCII码,
  11. str3 = json.dumps(dict1,ensure_ascii=False)#将ASCII转码关闭
  12. print(str2,type(str2))
  13. dict2 = json.loads(str2)
  14. print(dict2,type(dict2))

​ dump() :将对象转换(序列化)成字符串,写入文件

​ ldad():将文件中的字符串转换(反序列化)成对象

  1. import json
  2. list1 = [1,22,3,3,45]
  3. f = open('info','a')
  4. json.dump(list1,f)#每次只能在同一行写入
  5. #解决:写入多行
  6. f.writelines(json.dumps(list1) + '\n')
  7. f.close()
  8. f1 = open('info','r')
  9. l = json.load(f1)#只能读取一行,多行或一行有多个数据会报错
  10. #解决:读取多行
  11. for i in f1:
  12. l = json.loads(i)
  13. print(l)
  14. print(l,f1)

2.pickle 序列化

​ -- 近乎可将python所有对象进行转换(python自带,只有python可以用)

推荐使用json:jaon是各种语言通用的,pickle是python私有的

两组4个方法:

​ 1.

​ dumps:转成类字节

​ loads:转回原对象

  1. import pickle
  2. #转列表
  3. list1 = [1,2,3,4,6]
  4. str1 = pickle.dumps(list1)#转换成类似字节
  5. print(str1,type(str1))
  6. list2 = pickle.loads(str1)
  7. print(list2,type(list2))
  8. #转字典
  9. dict1 = {'k1':'v1'}
  10. str1 = pickle.dumps(dict1)
  11. print(str1)
  12. print(pickle.loads(str1))
  13. #转函数名
  14. def func():
  15. print(111)
  16. fun = pickle.dumps(func)
  17. print(fun)
  18. pickle.loads(fun)()

​ dump::转成类字节写入文件

​ load:读取文件并还原成原对象

  1. import pickle
  2. dic = {'user':'你去'}
  3. pickle.dump(dic,open("info",'wb'))
  4. print(pickle.load(open("info",'rb')))
  5. #写入多行,读取多行
  6. f = open("info",'wb')
  7. s = "\n".encode("utf-8")
  8. f.write(pickle.dumps(dic) + s)
  9. f.close()
  10. f1 = open("info",'rb')
  11. for i in f1:
  12. print(pickle.loads(i))

6.os模块 -- 与操作系统交互的接口

(程序员通过python向操作系统发送指令)

共四组:

  1. 工作目录
  1. import os
  2. print(os.getcwd())#获取当前工作目录 ***
  3. os.chdir("D:\\")#路径切换***
  4. print(os.curdir)#当前 .
  5. print(os.pardir)#父级 ..
  1. 文件夹:***
  1. import os
  2. os.mkdir('tt')#创建一个文件夹,不能是跨级创建
  3. os.rmdir('tt')#删除一个空的文件夹
  4. os.makedirs("tt/ss/dd")#递归创建文件夹
  5. os.removedirs("tt/ss/dd")#递归删除文件夹
  6. print(os.listdir(r"E:\python\oldboy\py\190726"))#返回目录下文件
  1. 文件
  1. import os
  2. os.rename()#修改文件名***
  3. os.remove("info")#删除文件,不能撤销***
  4. print(os.path.getatime(r"E:\python\oldboy\py\190726\01.py"))#最后修改的时间
  5. print(os.path.getctime(r"E:\python\oldboy\py\190726\01.py"))#最后的访问时间
  6. print(os.path.getmtime(r"E:\python\oldboy\py\190726\01.py"))#最后的访问时间
  7. print(os.path.getsize(r"E:\python\oldboy\py\190726\01.py"))#获取当前文件的大小,不用来判断文件夹。***
  8. #要写一个函数实现,先判断是否为文件:
  9. #os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表
  10. import os
  11. for i in os.listdir(“hahaha”):
  12. if os.path.isfile(i):
  13. print(os.path.getsize(“hahaha”+os.sep+i))
  1. 路径
  1. import os
  2. print(os.path.abspath(r"01.py"))#通过相对路径获取绝度路径 ***
  3. print(os.path.split(os.path.abspath(r"01.py")))#将绝对路径按照最后一个'\'切割(路径,文件名)***
  4. print(os.path.dirname(r"E:\python\oldboy\py\190726\01.py"))#通过绝对路径获取路径 ***
  5. print(os.path.basename(r"E:\python\oldboy\py\190726\01.py"))#通过路径获获取最后输入的最后一级文件名 **
  6. print(os.path.exists(r"E:\python\oldboy\py\190726\01.py"))#判断这个路径是否存在 ***
  7. print(os.path.isdir(r"E:\python\oldboy\py\190726\01.py"))#判断是不是存在的目录 ***
  8. print(os.path.isfile(r"01.py"))#判断是不是存在的文件 ***
  9. print(os.path.isabs(r"E:\python\oldboy\py\190726\01.py"))#判断是不是绝对路径
  10. print(os.path.join("D:\\","tt","dd"))#路径拼接 ***

7.sys -- 系统模块,与python解释器交互的接口

  1. import sys
  2. sys.argv#命令行传参
  3. print(sys.argv)
  4. sys.exit()#退出程序,可以修改参数,0为正常退出,1为出错
  5. print(sys.version)#获取当前解释器版本
  6. print(sys.path())#添加自定义模块查找路径
  7. print(sys.platform)#区分操作系统,进行相关逻辑操作

python模块知识二 random -- 随机模块、序列化 、os模块、sys -- 系统模块的更多相关文章

  1. python基础知识(二)

    python基础知识(二) 字符串格式化 ​ 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 ​ print(' %s is boy'%('tom')) ----> ...

  2. Python内置模块之time、random、hashlib、OS、sys、UUID模块

    Python常用模块 1.time模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间 ...

  3. Python中os与sys两模块的区别

    <os和sys的官方解释> ➤os os: This module provides a portable way of using operating system dependent ...

  4. os 和 sys 的模块使用方法和模块

    os  的模块  方法 os.remove()删除文件 os.rename()重命名文件 os.walk()生成目录树下的所有文件名 os.chdir()改变目录 os.mkdir/maked ...

  5. python基础知识二

    对象 python把在程序中用到的任何东西都成为对象. 每一个东西包括数.字符串甚至函数都是对象. 使用变量时只需要给他们赋一个值.不需要声明或定义数据类型. 逻辑行与物理行 物理行是你在编写程序时所 ...

  6. python函数知识二 动态参数、函数的注释、名称空间、函数的嵌套、global,nonlocal

    6.函数的动态参数 *args,**kwargs:能接受动态的位置参数和动态的关键字参数 *args -- tuple *kwargs -- dict 动态参数优先级:位置参数 > 动态位置参数 ...

  7. python基础知识二 列表、元组、range

    3.6.2 列表 1.列表 -- list ​ 有序,可变,支持索引,用于存储数据(字符串,数字,bool,列表,字典,集合,元组,). list1 = [] list1 = ['alex',12,T ...

  8. sys系统模块

    import sys # print(0)## sys.exit(0)## print(123) # print(sys.version)# print(sys.maxsize)# print(sys ...

  9. Python 基础之模块之math random time

    一:math 数学模块import math#(1)ceil() 向上取整操作 (对比内置round)res = math.ceil(6.001)  #注意精度损耗print(res)#(2)floo ...

随机推荐

  1. 【搜索引擎】Solr全文检索近实时查询优化

    设置多个搜索建议查找算法 <searchComponent name="suggest" class="solr.SuggestComponent"> ...

  2. Loadrunner做性能测试的主要步骤

    Loadrunner做性能测试的主要步骤: Loadrunner将性能测试过程分为计划测试.测试设计.创建VU脚本.创建测试场景.运行测试场景和分析结果6个步骤. 1) 计划测试:主要进行测试需求的收 ...

  3. 总结关于CPU的一些基本知识

    关于CPU和程序的执行 CPU是计算机的大脑. 程序的运行过程,实际上是程序涉及到的.未涉及到的一大堆的指令的执行过程. 当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便 ...

  4. JavaScript面向对象之封装

    Javascript是一种基于对象的语言,你遇到的所有东西几乎都是对象.但是,它又不是一种真正的面向对象编程语言,因为它的语法中没有 class(类). 那么,如果我们要把"属性" ...

  5. .NET开发框架(五)-IIS上部署ASP.NET Core项目教程

    系列教程:从初学者到架构师的一步步蜕变 本篇经验将和大家介绍如何在IIS上部署ASP.NET Core项目,希望对初学.NET CORE的童靴入门有所帮助! 1.打开VS,创建项目,选择ASP.NET ...

  6. SPOJ INTSUB - Interesting Subset(数学)

    http://www.spoj.com/problems/INTSUB/en/ 题意:给定一个集合,该集合由1,2,3....2n组成,n是一个整数.问该集合中有趣子集的数目,答案mod1e9+7. ...

  7. django基础知识之HttpReqeust对象:

    HttpReqeust对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象 视图函数的第一个参数是HttpRequest对象 在django.http模块中定义了HttpR ...

  8. 《Python 3网络爬虫开发实战中文》超清PDF+源代码+书籍软件包

    <Python 3网络爬虫开发实战中文>PDF+源代码+书籍软件包 下载: 链接:https://pan.baidu.com/s/18yqCr7i9x_vTazuMPzL23Q 提取码:i ...

  9. c++学习书籍推荐《C和C++安全编码》下载

    <华章程序员书库:C和C++安全编码(原书第2版)>致力于解决C和C++中已经导致危险的.破坏性的常见软件漏洞的基本编程错误,这些漏洞自CERT 1988年创立以来就记录在案.针对导致这些 ...

  10. python接口自动化(三十)--html测试报告通过邮件发出去——中(详解)

    简介 上一篇,我们虽然已经将生成的最新的测试报告发出去了,但是MIMEText 只能发送正文,无法带附件,因此我还需要继续改造我们的代码,实现可以发送带有附件的邮件.发送带附件的需要导入另外一个模块 ...