Open函数使用 Json与pickle Os模块

news2024/11/14 21:55:42

一. 文件操作与 open() 函数

Open函数是Python中用于打开文件的内置函数,其基本语法如下:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

各参数说明:

  • file: 要打开的文件名(必需),可以是相对路径或绝对路径。
  • mode:打开文件的模式,默认为'r'(读取模式)。常见模式包括:
  • 'r': 只读模式
  • 'w': 只写模式,如果文件存在则覆盖,不存在则创建
  • 'a': 追加模式,将数据写入到文件末尾
  • 'b': 二进制模式,与文本模式结合使用(如 'rb' 或 'wb'
  • '+': 读写模式(如 'r+' 或 'w+'
  • buffering:设置缓冲策略,用于控制文件的读写性能。可以是0(无缓冲)、1(行缓冲)、大于1的整数(固定大小的缓冲)或-1(使用系统默认的缓冲策略)。
  • encoding:文件的字符编码,如'utf-8'。
  • errors:编码错误处理策略。
  • newline:行尾换行符的处理方式。
  • closefd:如果为False,则不关闭底层文件描述符。
  • opener:用于自定义打开文件的函数(一般不需要使用)。

示例:

1.'r': 只读模式

2.'w': 只写模式

3.'a': 追加模式,将数据写入到文件末尾

4.'+': 读写模式(如 'r+' 或 'w+'

5.'b': 二进制模式,与文本模式结合使用(如 'rb' 或 'wb'

二. JSON 与 Pickle

Json

  • 用途:Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它主要用于不同语言之间的数据交换,如C和Python之间。

  • 序列化与反序列化

    • 序列化:将Python对象转换成Json格式的字符串,以便存储或网络传输。使用json.dumps()方法。

    • 反序列化:将Json格式的字符串转换回Python对象。使用json.loads()方法。

  • 文件操作

    • 使用json.dump()将对象直接写入文件。

    • 使用json.load()从文件中读取对象。

示例:序列化:

反序列化:

Pickle

  • 用途:Pickle是Python特有的一个序列化模块,它可以将几乎所有的Python对象序列化为字节流,并可以反序列化恢复成原来的Python对象。但Pickle只适用于Python之间的数据交换,且不同版本的Python之间可能存在兼容性问题。

  • 序列化与反序列化

    • 序列化:使用pickle.dumps()将对象序列化为字节流。

    • 反序列化:使用pickle.loads()将字节流反序列化为Python对象。

  • 文件操作

    • 使用pickle.dump()将对象直接写入文件(以二进制模式打开)。

    • 使用pickle.load()从文件中读取对象(以二进制模式打开)。

示例:序列化:

反序列化:

三.Os模块

Os模块是Python中用于与操作系统交互的模块,它提供了丰富的功能,包括文件和目录操作、进程管理、环境变量管理等。

文件和目录操作

  • 获取当前文件路径os.path.dirname(__file__), os.path.abspath(os.curdir)
  • 获取当前文件所在文件夹路径(父路径):os.path.dirname(__file__)
  • 判断路径是否存在os.path.exists(path)
  • 拼接文件路径os.path.join(BASE_DIR, file_name)
  • 切割路径os.path.split(path)
  • 判断当前路径是否是文件os.path.isfile(path)
  • 判断当前路径是否为绝对路径os.path.abspath
  • 判断当前路径是否为路径:os.path.isdir

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1946015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

34_YOLOv5网络详解

1.1 简介 YOLOV5是YOLO(You Only Look Once)系列目标检测模型的一个重要版本,由 Ultralytics 公司的Glenn Jocher开发并维护。YOLO系列以其快速、准确的目标检测能力而闻名,尤其适合实时应用。YOLOV5在保持高效的同时&#xff0c…

El-Table 表格的表头字段切换

最近写了一个小功能,比较有意思,特此博客记录。 提出需求:需要表头字段变化,但是我在官网上的表格相关上查找,没有发现便捷方法。 于是我有两个想法:1.做三个不同的表格。2.做一个表格使用不同的表头字段。…

2024.7.24 远程连接到另一设备(win)上的vrep时无响应(防火墙!)

Windows防火墙禁止了软件的端口的通信,打开即可 如何设置Windows 7 防火墙端口规则

字典集合案例

1.统计字符 统计字符串中每个字符出现的次数 s l like summer very much #去掉空格 s s.replace(" ","") d dict() for i in s:if i in d:d[i] 1else:d[i] 1 for i in d:print(i,d[i]) 2.求不重复的随机数 #导入随机数 import random a int(input(&q…

VMware 上安装 CentOS 7 教程 (包含网络设置)

**建议先看一些我安装VMware的教程,有些网络配置需要做一下 1.打开VMware,创建虚拟机 2.勾选自定义,点击下一步 3.点击下一步 4.勾选“稍后安装操作系统”,点击下一步 5.勾选linux,勾选centos7,点击下一步…

每日Attention学习12——Exterior Contextual-Relation Module

模块出处 [ISBI 22] [link] [code] Duplex Contextual Relation Network for Polyp Segmentation 模块名称 Exterior Contextual-Relation Module (ECRM) 模块作用 内存型特征增强模块 模块结构 模块思想 原文表述:在临床环境中,不同样本之间存在息肉…

Python算法基础:解锁冒泡排序与选择排序的奥秘

在数据处理和算法设计中,排序是一项基础且重要的操作。本文将介绍两种经典的排序算法:冒泡排序(Bubble Sort)和选择排序(Selection Sort)。我们将通过示例代码来演示这两种算法如何对列表进行升序排列。 一…

BGP选路之Local Preference

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由。BGP首先比较的是路由信息的首选值(PrefVal),如果 PrefVal相同,就会比较本…

python-NLP:2词性标注与命名实体识别

文章目录 词性标注命名实体识别时间命名实体(规则方法)CRF 命名实体识别方法 词性标注 词性是词汇基本的语法属性,通常也称为词类。词性标注是在给定句子中判定每个词的语法范畴,确定其词性并加以标注的过程。例如,表示…

爱回收严选买的二手iPad Air 4已经使用一周啦!

有多少人是跟我一样,手里一旦有点小钱就留不住,只想花出去的? 本24届应届生目前刚开始实习工作,虽然工资低的可怜,但是比起大学时期还是宽裕了不少。 于是发完工资的我就非常想消费!而我最近最想要的就是…

Fedora40安装telnet-server启用telnet服务

Fedora40安装telnet-server启用telnet服务 安装 telnet-server sudo yum install telnet-server或 sudo dnf install telnet-server启用服务 fedora40 或 CentosStream9 不能用 yum或dnf安装xinetd, telnet-server 的服务名为: telnet.socket 启用 telnet.socket.service …

Kithara和Halcon (二)

Kithara使用Halcon QT 进行二维码实时识别 目录 Kithara使用Halcon QT 进行二维码实时识别Halcon 简介以及二维码检测的简要说明Halcon 简介Halcon的二维码检测功能 Qt应用框架简介项目说明关键代码抖动测试测试平台:测试结果: 开源源码 Halcon 简介以…

C++与C中,由函数形参test(int *a)引出的问题

文章参考来源: 1.c函数中形参为引用的情况;C中a和&a的区别 描述: 最近在看循环单链表时,看到有篇文章中,链表初始化函数为图下,我在想,这个函数形参(类似 "int * & a"一样)到…

数据结构(二叉树-1)

文章目录 一、树 1.1 树的概念与结构 1.2 树的相关术语 1.3 树的表示 二、二叉树 2.1 二叉树的概念与结构 2.2特殊的二叉树 满二叉树 完全二叉树 2.3 二叉树的存储结构 三、实现顺序结构二叉树 3.1 堆的概念与结构 3.2 堆的实现 Heap.h Heap.c 默认初始化堆 堆的销毁 堆的插入 …

关于使用宝兰德bes中间件进行windows部署遇到的问题——license不存在

报错信息 日志文件中是这么报错的 遇到的具体情况: 实例按照**的文档手册正常步骤下去节点部署的时候没有报错,成功启动,但是日志里会有报错信息,也是license不存在实例创建的时候失败了,报错信息如下所示 解决方法…

Gitops-Argo-Cli安装与使用

一、安装Argo-Cli工具 Release v2.9.21 argoproj/argo-cd GitHub **选择合适的符合你操作系统以及CPU架构的二进制文件 #依v2.9.21-X86-64-Linux操作系统为例 wget https://github.com/argoproj/argo-cd/releases/download/v2.9.21/argocd-linux-amd64 #添加执行权限并且移…

昇思25天学习打卡营第19天|生成式-DCGAN生成漫画头像

打卡 目录 打卡 GAN基础原理 DCGAN原理 案例说明 数据集操作 数据准备 数据处理和增强 部分训练数据的展示 构造网络 生成器 生成器代码 ​编辑 判别器 判别器代码 模型训练 训练代码 结果展示(3 epoch) 模型推理 GAN基础原理 原理介…

AV1技术学习:Loop Restoration Filter

环路恢复滤波器(restoration filter)适用于64 64、128 128 或 256 256 像素块单元,称为 loop restoration units (LRUs)。每个单元可以独立选择是否跳过滤波、使用维纳滤波器(Wiener filter)或使用自导滤波器&#…

AM62x和rk3568的异同点

AM62x 和 RK3568 是两款不同的处理器,分别来自 Texas Instruments(TI)和 Rockchip。它们在设计目标、架构、性能和应用领域等方面存在一些异同。以下是这两款处理器的对比: 1. 基本架构 AM62x: 架构:基于…

【云原生】Kubernetes 中的 PV 和 PVC 介绍、原理、用法及实战案例分析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…