python模块知识二 random -- 随机模块、序列化 、os模块、sys -- 系统模块
4.random -- 随机模块
- a-z:97 ~ 122 A-Z :65 ~ 90
import random
#浮点数
print(random.random())#0~1,不可指定
print(random.uniform(1,10))#1~10#须指定
#整数
print(random.randint(1,10))[1~10]整数,闭区间
print(random.randrange(1,5,2))#(起始,终止,步长)
list1 = [1,2,3,4,5]
print(random.choice(list1)) #随机选择一个元素
print(random.choices(list1,k=2))#选择两个元素,会有重复,k可以超范围
print(random.sample(list1,k=2))#选择两个元素,k不可以超范围。不会有重复,除非只有两个[1,1]
#打乱顺序
list1 = [12,3,4,5,6,7,8,9]
random.shuffle(list1)
print(list1)
5.序列化
1.json 模块
两组4个方法:
dumps() :将对象转(序列化)成字符串
loads() :将字符串转换(反序列化)成对象
import json
#列表
list1 = [1,22,3,3,45]
str1 = json.dumps(list1)#序列化
print(str1,type(str1))
list2 = json.loads(str1)#反序列化
print(list2,type(list2))
#字典
dict1 = {"k1":"无聊","k2":2}
str2 = json.dumps(dict1)#汉字会变成ASCII码,
str3 = json.dumps(dict1,ensure_ascii=False)#将ASCII转码关闭
print(str2,type(str2))
dict2 = json.loads(str2)
print(dict2,type(dict2))
dump() :将对象转换(序列化)成字符串,写入文件
ldad():将文件中的字符串转换(反序列化)成对象
import json
list1 = [1,22,3,3,45]
f = open('info','a')
json.dump(list1,f)#每次只能在同一行写入
#解决:写入多行
f.writelines(json.dumps(list1) + '\n')
f.close()
f1 = open('info','r')
l = json.load(f1)#只能读取一行,多行或一行有多个数据会报错
#解决:读取多行
for i in f1:
l = json.loads(i)
print(l)
print(l,f1)
2.pickle 序列化
-- 近乎可将python所有对象进行转换(python自带,只有python可以用)
推荐使用json:jaon是各种语言通用的,pickle是python私有的
两组4个方法:
1.
dumps:转成类字节
loads:转回原对象
import pickle
#转列表
list1 = [1,2,3,4,6]
str1 = pickle.dumps(list1)#转换成类似字节
print(str1,type(str1))
list2 = pickle.loads(str1)
print(list2,type(list2))
#转字典
dict1 = {'k1':'v1'}
str1 = pickle.dumps(dict1)
print(str1)
print(pickle.loads(str1))
#转函数名
def func():
print(111)
fun = pickle.dumps(func)
print(fun)
pickle.loads(fun)()
dump::转成类字节写入文件
load:读取文件并还原成原对象
import pickle
dic = {'user':'你去'}
pickle.dump(dic,open("info",'wb'))
print(pickle.load(open("info",'rb')))
#写入多行,读取多行
f = open("info",'wb')
s = "\n".encode("utf-8")
f.write(pickle.dumps(dic) + s)
f.close()
f1 = open("info",'rb')
for i in f1:
print(pickle.loads(i))
6.os模块 -- 与操作系统交互的接口
(程序员通过python向操作系统发送指令)
共四组:
- 工作目录
import os
print(os.getcwd())#获取当前工作目录 ***
os.chdir("D:\\")#路径切换***
print(os.curdir)#当前 .
print(os.pardir)#父级 ..
- 文件夹:***
import os
os.mkdir('tt')#创建一个文件夹,不能是跨级创建
os.rmdir('tt')#删除一个空的文件夹
os.makedirs("tt/ss/dd")#递归创建文件夹
os.removedirs("tt/ss/dd")#递归删除文件夹
print(os.listdir(r"E:\python\oldboy\py\190726"))#返回目录下文件
- 文件
import os
os.rename()#修改文件名***
os.remove("info")#删除文件,不能撤销***
print(os.path.getatime(r"E:\python\oldboy\py\190726\01.py"))#最后修改的时间
print(os.path.getctime(r"E:\python\oldboy\py\190726\01.py"))#最后的访问时间
print(os.path.getmtime(r"E:\python\oldboy\py\190726\01.py"))#最后的访问时间
print(os.path.getsize(r"E:\python\oldboy\py\190726\01.py"))#获取当前文件的大小,不用来判断文件夹。***
#要写一个函数实现,先判断是否为文件:
#os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表
import os
for i in os.listdir(“hahaha”):
if os.path.isfile(i):
print(os.path.getsize(“hahaha”+os.sep+i))
- 路径
import os
print(os.path.abspath(r"01.py"))#通过相对路径获取绝度路径 ***
print(os.path.split(os.path.abspath(r"01.py")))#将绝对路径按照最后一个'\'切割(路径,文件名)***
print(os.path.dirname(r"E:\python\oldboy\py\190726\01.py"))#通过绝对路径获取路径 ***
print(os.path.basename(r"E:\python\oldboy\py\190726\01.py"))#通过路径获获取最后输入的最后一级文件名 **
print(os.path.exists(r"E:\python\oldboy\py\190726\01.py"))#判断这个路径是否存在 ***
print(os.path.isdir(r"E:\python\oldboy\py\190726\01.py"))#判断是不是存在的目录 ***
print(os.path.isfile(r"01.py"))#判断是不是存在的文件 ***
print(os.path.isabs(r"E:\python\oldboy\py\190726\01.py"))#判断是不是绝对路径
print(os.path.join("D:\\","tt","dd"))#路径拼接 ***
7.sys -- 系统模块,与python解释器交互的接口
import sys
sys.argv#命令行传参
print(sys.argv)
sys.exit()#退出程序,可以修改参数,0为正常退出,1为出错
print(sys.version)#获取当前解释器版本
print(sys.path())#添加自定义模块查找路径
print(sys.platform)#区分操作系统,进行相关逻辑操作
python模块知识二 random -- 随机模块、序列化 、os模块、sys -- 系统模块的更多相关文章
- python基础知识(二)
python基础知识(二) 字符串格式化 格式: % 类型 ---- > ' %类型 ' %(数据) %s 字符串 print(' %s is boy'%('tom')) ----> ...
- Python内置模块之time、random、hashlib、OS、sys、UUID模块
Python常用模块 1.time模块 在Python中,通常有这三种方式来表示时间:时间戳.元组(struct_time).格式化的时间字符串: (1)时间戳(timestamp) :通常来说,时间 ...
- Python中os与sys两模块的区别
<os和sys的官方解释> ➤os os: This module provides a portable way of using operating system dependent ...
- os 和 sys 的模块使用方法和模块
os 的模块 方法 os.remove()删除文件 os.rename()重命名文件 os.walk()生成目录树下的所有文件名 os.chdir()改变目录 os.mkdir/maked ...
- python基础知识二
对象 python把在程序中用到的任何东西都成为对象. 每一个东西包括数.字符串甚至函数都是对象. 使用变量时只需要给他们赋一个值.不需要声明或定义数据类型. 逻辑行与物理行 物理行是你在编写程序时所 ...
- python函数知识二 动态参数、函数的注释、名称空间、函数的嵌套、global,nonlocal
6.函数的动态参数 *args,**kwargs:能接受动态的位置参数和动态的关键字参数 *args -- tuple *kwargs -- dict 动态参数优先级:位置参数 > 动态位置参数 ...
- python基础知识二 列表、元组、range
3.6.2 列表 1.列表 -- list 有序,可变,支持索引,用于存储数据(字符串,数字,bool,列表,字典,集合,元组,). list1 = [] list1 = ['alex',12,T ...
- sys系统模块
import sys # print(0)## sys.exit(0)## print(123) # print(sys.version)# print(sys.maxsize)# print(sys ...
- Python 基础之模块之math random time
一:math 数学模块import math#(1)ceil() 向上取整操作 (对比内置round)res = math.ceil(6.001) #注意精度损耗print(res)#(2)floo ...
随机推荐
- 【webAssembly系列】webAssembly初探究竟
一.前言 自从JavaScript诞生开始,到现在开始变成流行的编程语言,背后的是web发展所推动的.web应用的变得更多更复杂,但是渐渐暴露出JavaScript的问题: (1)语法太灵活导致开发大 ...
- Spark学习之路(十六)—— Spark Streaming 整合 Kafka
一.版本说明 Spark针对Kafka的不同版本,提供了两套整合方案:spark-streaming-kafka-0-8和spark-streaming-kafka-0-10,其主要区别如下: s ...
- HTML连载19-子元素选择器&交集选择器
一.子元素选择器 1.定义:找到指定标签中所有特定的直接子元素,然后设置属性 2.格式: 标签名称一>标签名称2{ 属性:值: } 3.释义:先找到叫做“标签名称1”的标签,然后在这个标签中查找 ...
- sort和sorted深入理解----引子:多维列表,如何实现第一个元素升序,第二个元素降序
一.列表内建方法--sort() 作用:就地对列表排序(直接在原列表上做排序) 语法: list.sort(func=None, key=None, reverse=False) 当reverse=F ...
- 安装Ruby、多版本Ruby共存、Ruby安装慢问题
rbenv rbenv可以管理多个版本的ruby.可以分为3种范围(或者说不同生效作用域)的版本: local版:本地,针对各项目范围 global版:全局,没有shell和local版时使用glob ...
- C++ 洛谷 P2458 [SDOI2006]保安站岗 from_树形DP
P2458 [SDOI2006]保安站岗 没学树形DP的,看一下. 题目大意:一棵树有N个节点,现在需要将所有节点都看守住,如果我们选择了节点i,那么节点i本身,节点i的父亲和儿子都会被看守住. 每个 ...
- HDU 5723:Abandoned country(最小生成树+算期望)
http://acm.hdu.edu.cn/showproblem.php?pid=5723 Abandoned country Problem Description An abandoned ...
- python数据库-MySQL数据库高级查询操作(51)
一.什么是关系? 1.分析:有这么一组数据关于学生的数据 学号.姓名.年龄.住址.成绩.学科.学科(语文.数学.英语) 我们应该怎么去设计储存这些数据呢? 2.先考虑第一范式:列不可在拆分原则 这里面 ...
- 数据结构与算法分析(C++)读书笔记
第一章 综述 数学知识复习: 指数.对数.级数.模运算.证明方法(证明数据结构分析几轮最常用方法:归纳法.反证法) 递归简论 C++知识:类.细节.模板.矩阵.
- C语言学习书籍推荐《学通C语言的24堂课》下载
下载地址:点我 编辑推荐 <学通C语言的24堂课>:用持续激励培养良好习惯以良好习惯铸就伟大梦想——致亲爱的读者朋友在开始学习<学通C语言的24堂课>的同时,强烈建议读者朋友同 ...