Python学习—open函数,json与pickle知识点,Os模块详解
目录
1. Open函数
2.json与pickle模块
json模块
1. json.dumps()
2. json.dump()
3. json.loads()
4. json.load()
pickle 模块
1. pickle.dumps()
2. pickle.dump()
3. pickle.loads()
4. pickle.load()
3.Os模块
1. Open函数
在Python中,open() 函数用于打开文件,并返回一个文件对象,可以用于读取或写入文件内容。open() 函数的基本语法如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
file: 必需,表示要打开的文件名(包括路径)。mode: 可选,表示文件的打开模式,默认为'r'(只读模式)。常用的模式包括:'r': 只读模式(默认)。'w': 只写模式。如果文件存在则覆盖,不存在则创建。'x': 创建并写入一个新文件,如果文件已存在则失败。'a': 追加模式,将内容写入到文件末尾。'b': 二进制模式。't': 文本模式(默认)。'+': 打开文件进行更新(读取和写入)。
- 其他参数如
buffering、encoding、errors等通常是可选的,用于控制文件读写时的缓冲行为、文本编码、错误处理等。
示例:
# 打开一个文件进行读取
file = open('example.txt', 'r')
content = file.read()
print(content)
file.close()# 打开一个文件进行写入
file = open('output.txt', 'w')
file.write('Hello, World!')
file.close()
在使用 open() 函数时,建议在操作文件完毕后调用 file.close() 来关闭文件对象,这样可以释放资源并确保写入的内容被正确保存。另外,也可以使用 with 语句来自动管理文件的打开和关闭:
with open('example.txt', 'r') as file:content = file.read()print(content)
# 文件会在离开 `with` 块后自动关闭
2.json与pickle模块
json模块
1. json.dumps()
json.dumps()函数用于将Python对象转换为JSON格式的字符串。其基本语法如下:
import json# 将Python对象转换为JSON字符串
json_str = json.dumps(python_object)
其中,python_object可以是字典、列表、元组等基本的Python数据结构。
示例:
data = {'name': 'Alice', 'age': 30}
json_str = json.dumps(data)
print(json_str) # 输出: {"name": "Alice", "age": 30}
2. json.dump()
json.dump()函数与json.dumps()类似,不同之处在于它将Python对象转换为JSON格式的字符串后,直接写入到文件对象中。其基本语法如下:
import json# 将Python对象转换为JSON字符串,并写入文件
with open('data.json', 'w') as f:json.dump(python_object, f)
这个方法特别适合于将Python数据结构持久化到文件中。
3. json.loads()
json.loads()函数用于将JSON格式的字符串转换为Python对象。其基本语法如下:
import json# 将JSON字符串转换为Python对象
python_obj = json.loads(json_string)
示例:
json_str = '{"name": "Alice", "age": 30}'
data = json.loads(json_str)
print(data) # 输出: {'name': 'Alice', 'age': 30}
4. json.load()
json.load()函数与json.loads()类似,不同之处在于它从文件对象中读取JSON数据,并将其解析为Python对象。其基本语法如下:
import json# 从文件中读取JSON数据,并解析为Python对象
with open('data.json', 'r') as f:data = json.load(f)
这个方法通常用于从文件中加载之前存储的JSON数据。
总结:
1. json.dumps():将Python对象转换为JSON格式的字符串。
2. json.dump():将Python对象转换为JSON格式的字符串,并写入文件。
3. json.loads():将JSON格式的字符串转换为Python对象。
4. json.load():从文件中读取JSON数据,并将其解析为Python对象。
pickle 模块
1. pickle.dumps()
pickle.dumps() 函数将 Python 对象序列化为一个字节对象,可以稍后写入文件或者通过网络传输。其基本语法如下:
import pickle# 将Python对象序列化为字节对象
pickle_bytes = pickle.dumps(python_object)
示例:
data = {'name': 'Bob', 'age': 25}
pickle_bytes = pickle.dumps(data)
2. pickle.dump()
pickle.dump() 函数与 pickle.dumps() 类似,不同之处在于它直接将序列化后的字节数据写入文件对象中。其基本语法如下:
import pickle# 将Python对象序列化为字节对象,并写入文件
with open('data.pkl', 'wb') as f:pickle.dump(python_object, f)
示例:
data = {'name': 'Bob', 'age': 25}
with open('data.pkl', 'wb') as f:pickle.dump(data, f)
3. pickle.loads()
pickle.loads() 函数从字节对象中反序列化出 Python 对象。其基本语法如下:
import pickle# 从字节对象中反序列化出Python对象
python_obj = pickle.loads(pickle_bytes)
示例:
pickle_bytes = b'\x80\x04\x95\x1a\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x04name\x94\x8c\x03Bob\x94\x8c\x03age\x94K\x19u.'
data = pickle.loads(pickle_bytes)
print(data) # 输出: {'name': 'Bob', 'age': 25}
4. pickle.load()
pickle.load() 函数与 pickle.loads() 类似,不同之处在于它从文件对象中读取字节数据,并将其反序列化为 Python 对象。其基本语法如下:
import pickle# 从文件中读取字节数据,并反序列化出Python对象
with open('data.pkl', 'rb') as f:data = pickle.load(f)
示例:
with open('data.pkl', 'rb') as f:data = pickle.load(f)
print(data) # 输出: {'name': 'Bob', 'age': 25}
注意事项:
1. pickle 模块生成的序列化数据是 Python 特定的,并不跨语言兼容,因此在不同的 Python 版本之间使用时要小心。
2. 对于简单的数据结构和与 Python 特定的应用场景,pickle 提供了更高效的数据序列化和反序列化方法。
3.Os模块
关于Os模块的各种方法,见代码:
import os# 获取当前工作目录
current_dir = os.getcwd()
print("当前工作目录:", current_dir)# 改变当前工作目录
os.chdir('/path/to/new/directory')
print("新的工作目录:", os.getcwd())# 列出目录中的文件和子目录
files_and_dirs = os.listdir('/path/to/directory')
print("目录内容:", files_and_dirs)# 创建目录(包括多级目录)
os.makedirs('/path/to/new/directory')# 删除空目录
os.rmdir('/path/to/directory')# 删除文件
os.remove('/path/to/file')# 获取环境变量
env_var = os.getenv('ENV_VARIABLE_NAME')
print("环境变量:", env_var)# 设置环境变量
os.environ['ENV_VARIABLE_NAME'] = 'value'# 路径拼接
path = os.path.join('/path', 'to', 'directory')# 获取文件名和目录名
filename = os.path.basename('/path/to/file.txt')
dirname = os.path.dirname('/path/to/file.txt')# 检查路径是否为文件或目录
is_file = os.path.isfile('/path/to/file.txt')
is_dir = os.path.isdir('/path/to/directory')# 重命名文件
os.rename('old_filename.txt', 'new_filename.txt')# 检查路径是否存在
exists = os.path.exists('/path/to/something')
知识模块图:

相关文章:
Python学习—open函数,json与pickle知识点,Os模块详解
目录 1. Open函数 2.json与pickle模块 json模块 1. json.dumps() 2. json.dump() 3. json.loads() 4. json.load() pickle 模块 1. pickle.dumps() 2. pickle.dump() 3. pickle.loads() 4. pickle.load() 3.Os模块 1. Open函数 在Python中,open() 函数…...
基于SSM的高考志愿选择辅助系统
基于SSM的高考志愿选择辅助系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringSpringMVCMyBatis工具:IDEA/Ecilpse、Navicat、Maven 系统展示 前台 前台首页 院校展示 后台 后台首页 学校管理 摘要 随着高考制度的不断完…...
引领小模型潮流!OpenAI发布功能强大且成本低的GPT-4o mini
GPT-4o mini的成本比GPT-3.5 Turbo低了超过60%,其聊天表现优于Google的Gemini Flash和Anthropic的Claude Haiku。该模型从周四开始对ChatGPT的免费用户、ChatGPT Plus用户和团队订阅用户开放,并将在下周向企业用户开放。OpenAI计划未来将图像、视频和音频…...
【考研数学】线代满分经验分享+备考复盘
我一战二战复习都听了李永乐的线代课,二战的时候只听了一遍强化,个人感觉没有很乱,永乐大帝的课逻辑还是很清晰的。 以下是我听向量这一章后根据听课内容和讲义例题总结的部分思维导图,永乐大帝讲课的时候也会特意点到线代前后联…...
Java项目:基于SSM框架实现的海鲜自助餐厅系统【ssm+B/S架构+源码+数据库+毕业论文】
一、项目简介 本项目是一套基于SSM框架实现的海鲜自助餐厅系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作简单、功能…...
前端面试题日常练-day97 【Less】
题目 希望这些选择题能够帮助您进行前端面试的准备,答案在文末 在Less中,以下哪个功能用于处理文本字间距? a) letter-spacing() b) word-spacing() c) text-spacing() d) space-between() Less中的Variables可以存储哪些类型的值ÿ…...
压缩视频大小的方法 怎么减少视频内存大小 几个简单方法
随着4K、8K高清视频的流行,我们越来越容易遇到视频文件体积过大,导致存储空间不足、传输速度缓慢等问题。视频压缩成为解决这一问题的有效途径,但如何在减小文件大小的同时,保证视频质量不受影响呢?本文将为你揭晓答案…...
JVM:GraalVM
文章目录 一、介绍1、什么是GraalVM:2、GraalVM版本 二、两种使用模式 一、介绍 1、什么是GraalVM: GraalVM是Oracle官方推出的一款高性能JDK,使用它享受比OpenJDK或者OracleJDK更好的性能。GraalVM的官网地址:https://www.graa…...
海外营销推广:快速创建维基百科(wiki)词条-大舍传媒
一、维基百科的永久留存问题 许多企业和个人关心维基百科是否能永久留存。实际上,只要企业和个人的行为没有引起维基百科管理方的反感,词条就可以长期保存。如果有恶意行为或被投诉,维基百科可能会对词条进行删除或修改。 二、创建维基百科…...
【HarmonyOS】HarmonyOS NEXT学习日记:五、交互与状态管理
【HarmonyOS】HarmonyOS NEXT学习日记:五、交互与状态管理 在之前我们已经学习了页面布局相关的知识,绘制静态页面已经问题不大。那么今天来学习一下如何让页面动起来、并且结合所学完成一个代码实例。 交互 如果是为移动端开发应用,那么交…...
处理uniapp刷新后,点击返回按钮跳转到登录页的问题
在使用uniapp的原生返回的按钮时,如果没有刷新会正常返回到对应的页面,如果刷新后会在当前页反复横跳,或者跳转到登录页。那个时候我第一个想法时:使用浏览器的history.back()方法。因为浏览器刷新后还是可以通过右上角的返回按钮…...
工厂方法模式java
文章目录 1. 概念2. 示例3. 代码示例 1. 概念 定义: 工厂方法模式又叫工厂模式,通过定义工厂父类创建对象的公共接口,而子类负责创建具体的对象 作用: 由工厂的子类来决定创建哪一个对象 缺点: 工厂一旦需要生成新的东西就需要修改代码,违背的开放封闭原则 2. 示例 3. 代码示…...
java模拟多ip请求【搬代码】
java模拟多ip请求 package url_demo;import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import java.net.URLConnection; import java.util.Random;public class HttpUtilTest…...
微软史诗级的蓝屏
本周经历了微软的蓝屏,一直到周末还在加班处理公司的问题。 个人终端受到的影响较大,服务器上也受到了影响。因为蓝屏的事情导致不少麻烦,据同事说因为蓝屏的问题,MGH 的手术安排也受到了影响。 目前我们也在着手处理有部署 Wind…...
HALCON数据结构
一、HALCON数据结构简介 1、HALCON中有两类参数:图形参数和控制参数。 2、HALCON算子参数中,图形输入参数、图形输出参数、控制输入参数和控制输出参数。 3、图形参数有:图像(image)、区域(region)和轮廓(XLD) 4、控制参数有:…...
数据库系统概论:事务与并发一致性问题
随着网络应用的普及,数据库并发问题变得越来越重要。数据库并发指的是多个用户或进程同时访问和操作数据库的能力。它是数据库系统性能优化的重要方面,旨在提高系统的吞吐量和响应时间,以满足多用户同时访问数据库的需求。然而,这…...
Python编程基础:元组类型、字典类型、集合类型
目录 元组类型创建/删除元组访问/操作元组元组生成式字典类型创建/删除字典访问/操作字典字典相关函数集合类型创建/删除集合集合相关操作符访问/操作集合元组类型 元组是Python中内置的不可变序列,这是它跟列表的不同之处,它没有一系列增删改等操作,只可以使用索引和for循环…...
day2 单机并发缓存
文章目录 1 sync.Mutex2 支持并发读写3 主体结构 Group3.1 回调 Getter3.2 Group 的定义3.3 Group 的 Get 方法 4 测试 本文代码地址: https://gitee.com/lymgoforIT/gee-cache/tree/master/day2-single-node 本文是7天用Go从零实现分布式缓存GeeCache的第二篇。 …...
ECMP等价多路由机制,大模型训练负载均衡流量极化冲突原因,万卡(大规模)集群语言模型(LLM)训练流量拥塞特点
大规模集群,大语言模型(LLM)训练流量特点,ECMP(Equal-Cost Multi-Path Routing)流量极化拥塞原因。 视频分享在这: 2.1 ECMP等价多路由,大模型训练流量特点,拥塞冲突极化产生原因_哔哩哔哩_bi…...
Linux 注意事项
Linux 与 Windows 是两个相互独立的操作系统,两者有较大差距: 1.1 Linux 严格区分大小写(Windows不严格区分大小写); 1.2 Linux 中所有内容,硬件设备都以文件形式保存在 /dev 目录下(万物皆文件…...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)
1.获取 authorizationCode: 2.利用 authorizationCode 获取 accessToken:文档中心 3.获取手机:文档中心 4.获取昵称头像:文档中心 首先创建 request 若要获取手机号,scope必填 phone,permissions 必填 …...
学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
4. TypeScript 类型推断与类型组合
一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...
FFmpeg:Windows系统小白安装及其使用
一、安装 1.访问官网 Download FFmpeg 2.点击版本目录 3.选择版本点击安装 注意这里选择的是【release buids】,注意左上角标题 例如我安装在目录 F:\FFmpeg 4.解压 5.添加环境变量 把你解压后的bin目录(即exe所在文件夹)加入系统变量…...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
