python之路--内置模块02
一. namedtuple
命名元组->类似创建了一个类
from collections import namedtuple
# 类
p = namedtuple("Point", ["x", "y"])
# 对象
p1 = p(10, 20)
print(p1) # Point(x=10, y=20)
print(p1.x) #
print(p1.y) #
二. os
主要是针对操作系统的
一般用来操作文件系统
os.makedirs()可以一次性创建多级目录
os.rmdir()删除一个文件夹
os.path.dirname() 获取到文件的文件夹
import os
# os.makedirs("金庸/笑傲江湖/令狐冲") # 可以一次性创建多级目录 # os.rmdir("金庸/笑傲江湖/令狐冲") # 指定文件夹删除 前提需要令狐冲文件夹是空的 # t = os.path.dirname(r"D:\python_workspace_s18\练习用的 \江湖")
# print(t) # D:\python_workspace_s18\练习用的
三 . sys
主要针对的是我们的python解释器
sys.path(重点中的重点) 模块的查找路径
import sys
print(sys.path) # 找模块的. 必须要记住. 模块的搜索路径
# sys.path.append("D:\\python_workspace_s18\\day21 继承") # 添加新的查找位置
import world # world是自定义的pythonfile
# world.kungfu() # 先找'D:\\python_workspace_s18\\练习用的' ,再找 'D:\\python_workspace_s18'
四 . 序列化
把一个对象拍散 叫序列化
把拍散的内容整合回对象. 反序列化
五 . pickle(重点)
把一个对象进行序列化操作
1. dumps() 把对象序列化成字节
2. loads() 把字节反序列化成对象
3. dump() 把对象序列化写入文件
4. load() 把文件中的内容反序列化成对象
import pickle
#
class Elephant:
def __init__(self, name, weight, height):
self.name = name
self.weight = weight
self.height = height
def tiaoxi(self):
print(f"{self.name}大象特别喜欢调戏人") e = Elephant("宝宝", "185T", "")
# # 序列化
bs = pickle.dumps(e) # 把对象进行序列化
print(bs) # b'\x80\x03c__main__\nElephant\nq\x00)\x81q\x01}q\
# x02(X\x04\x00\x00\x00nameq\x03X\x06\x00\x00\x00\xe5\xae\x9d\
# xe5\xae\x9dq\x04X\x06\x00\x00\x00weightq\x05X\x04\x00\x00\
# x00185Tq\x06X\x06\x00\x00\x00heightq\x07X\x03\x00\x00\x00175q\x08ub.' # # 反序列化
dx = pickle.loads(bs) # 反序列化. 得到的是大象
dx.tiaoxi() e1 = Elephant("宝宝", "185T", "")
e2 = Elephant("宝贝", "120T", "")
lst = [e1, e2]
pickle.dump(lst, open("大象", mode="wb"))
# 读
lst = pickle.load(open("大象", mode="rb"))
for dx in lst:
dx.tiaoxi()
六 . json(重点中的重点)
json你可以认为是python中的字典. 有一点点的不一样
python: True, False, None
json: true, false, null
1. dumps() 把对象序列化成json
2. loads() 把json反序列化成对象
3. dump() 把对象序列化写入文件
4. load() 把文件中的内容反序列化成对象
import json
dic = {"baby":None, "hxm":False, "syy":"史杨杨"}
#
s = json.dumps(dic, ensure_ascii=False) # json处理中文的问题
print(s) # {"baby": null, "hxm": false, "syy": "史杨杨"}
d = json.loads('{"baby": null, "hxm": false, "syy": "史杨杨"}')
print(d['baby']) # None
f = open("baby.json", mode="w", encoding="utf-8")
json.dump({"baby":None, "hxm":False, "syy":"史杨杨"}, f, ensure_ascii=False)
f = open("baby.json", mode="r", encoding="utf-8")
obj = json.load(f)
print(obj)
python之路--内置模块02的更多相关文章
- Python之路【第十九篇】:爬虫
Python之路[第十九篇]:爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用 ...
- Python之路【第十八篇】:Web框架们
Python之路[第十八篇]:Web框架们 Python的WEB框架 Bottle Bottle是一个快速.简洁.轻量级的基于WSIG的微型Web框架,此框架只由一个 .py 文件,除了Pytho ...
- python之路,Day24 常用设计模式学习
python之路,Day24 常用设计模式学习 本节内容 设计模式介绍 设计模式分类 设计模式6大原则 1.设计模式介绍 设计模式(Design Patterns) --可复用面向对象软件的基础 ...
- python 之路,Day11(上) - python mysql and ORM
python 之路,Day11 - python mysql and ORM 本节内容 数据库介绍 mysql 数据库安装使用 mysql管理 mysql 数据类型 常用mysql命令 创建数据库 ...
- Python 入门之 内置模块 -- os模块
Python 入门之 内置模块 -- os模块 1.os os是和操作系统做交互,给操作发指令 os模块是与操作系统交互的一个接口,它提供的功能多与工作目录,路径,文件等相关 (1)工作路径 prin ...
- Python之路-numpy模块
这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...
- python之路(dingo 框架)
Python之路 转载自QIMI老师 Python之路 第一篇:Python基础 PyCharm使用秘籍免费视频教程v3 ... 迭代器生成器 模块和常用内置模块 面向对象 面向对象进阶 网络编程 ...
- Python之路【第一篇】python基础
一.python开发 1.开发: 1)高级语言:python .Java .PHP. C# Go ruby c++ ===>字节码 2)低级语言:c .汇编 2.语言之间的对比: 1)py ...
- Python之路
Python学习之路 第一天 Python之路,Day1 - Python基础1介绍.基本语法.流程控制 第一天作业第二天 Python之路,Day2 - Pytho ...
随机推荐
- 发现电脑上装着liteide,就用golang做一个TCP通讯测试(支持先启动client端和断线重连)
1.参考https://www.cnblogs.com/yin5th/p/9274495.html server端 main.go package main import ( "fmt&qu ...
- rabbitmq官方的六种工作模式
1.RabbitMq1.1介绍RabbitMQ是一个消息代理:它接受并转发消息.你可以把它当成一个邮局:当你想邮寄信件的时候,你会把信件放在投递箱中,并确信邮递员最终会将信件送到收件人的手里.在这个例 ...
- linux命令之 tar
参数 -c 创建新归档 -d 比较归档和文件系统的差异 -r 追加文件到归档 -t 存档的内容列表 -x 提取归档所有文件 -C 改变解压目录 -f 使用归档文件或设备归档 -j bzip2 压缩 - ...
- 关于CentOS7下docker-ce无法删除镜像的问题
未完待续.... 从旧版的docker删除后安装了新版的docker-ce 发现之前镜像无法删除,并且重新pull不能覆盖,会出现两个一模一样的镜像. [root@localhost ~]# dock ...
- Docker安装MySQL并配置远程访问
1.docker search mysql 查看mysql版本 2.docker pull mysql 要选择starts最高的那个name 进行下载 3.docker images 查看下载好的镜像 ...
- bzoj-1787-洛谷-4281(LCA板子题)
传送门(bzoj) 传送门(洛谷) 可以说这道也是一个板子题 由于题中是三个人需经过的路径最短 就会有一点点不太一样 那么 就两两求LCA 这样之后就会出现两种状况 一.所得到的三个LCA是相等的 那 ...
- MySQL报错: java.sql.SQLException: Column count doesn't match value count at row 1
这个是今天写新项目的是后,写插入语句测试用例的时候报这个错误, 其实错误的原因就是插入语句的前面的列和后面的值 的个数不对. 错在此,仔细检查一下,看看少了哪一个,然后修改就可以了.
- java单例模式总结
目录 一. 饿汉模式(静态初始化) 二.双重检查锁(dcl) 三. 延迟占位类 四.枚举实现 最后 常见安全的单例实现代码和自己的一点理解. 一. 饿汉模式(静态初始化) class Singleto ...
- Winform下透明Panel
网上很多写着透明Panel的方法,都是把BackColor属性设置为透明,然后指定Parent,实验了一下,对于部分情况下,是可用的,例如下层本身有自带的控件,但是,如果是用Graphic绘制的内容, ...
- Git-命令行-使用 Tag 标记你的代码
前言 正文开始之前,我想我们需要弄明白几个问题: 1.tag 是什么? 2.使用tag 的好处? 3.tag 和 branch 的区别以及使用场景? tag 是什么? tag , 翻译过来是标签的意思 ...