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 目录下(万物皆文件…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...
P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
9-Oracle 23 ai Vector Search 特性 知识准备
很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...
