掌握Python中的文件序列化:Json和Pickle模块解析

Python 文件操作与管理:Open函数、Json与Pickle、Os模块

在Python中,文件是一个重要的数据处理对象。无论是读取数据、保存数据还是进行数据处理,文件操作都是Python编程中不可或缺的一部分。本文将详细介绍Python中文件操作的几种常用方法,包括open函数的使用、数据序列化与反序列化,以及os模块在文件和目录管理中的应用。

Open函数的使用

open()函数是Python中打开文件的通用方法,使用它可以打开一个文件,并返回一个文件对象。这个文件对象可以用于后续的读写等操作。

函数格式

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

参数说明

  • file:文件路径。
  • mode:打开方式,如'r'(只读)、'w'(只写)、'a'(追加)、'b'(二进制模式)等。
  • encoding:指定编码类型。
  • errors:指定错误处理方式。

示例代码

# 读取文件内容
with open('example.txt', 'r', encoding='utf-8') as file:content = file.read()print(content)# 写入文件
with open('example.txt', 'w', encoding='utf-8') as file:file.write('Hello, world!')# 追加内容
with open('example.txt', 'a', encoding='utf-8') as file:file.write('\nAppend this line.')

数据序列化:Json与Pickle

序列化是指将对象状态转换为可存储或传输的形式的过程。Python中提供了多种序列化方法,其中jsonpickle是常用的两种。

Json序列化与反序列化

json模块可以将Python对象转换成JSON格式字符串,并能从JSON格式字符串中转换回Python对象。

import json# 序列化
data = {'key': 'value'}
json_str = json.dumps(data)
print(json_str)  # {"key": "value"}# 反序列化
data_back = json.loads(json_str)
print(data_back)  # {'key': 'value'}

Pickle序列化与反序列化

pickle模块可以将Python对象序列化并保存到文件中,也能从文件中恢复这些对象。

import pickle# 序列化
data = {'key': 'value'}
with open('data.pickle', 'wb') as file:pickle.dump(data, file)# 反序列化
with open('data.pickle', 'rb') as file:data_loaded = pickle.load(file)

文件和目录管理:os模块

os模块提供了丰富的方法用于文件和目录的管理。

文件和目录操作

import os# 获取当前工作目录
current_directory = os.getcwd()
print(current_directory)# 创建目录
os.makedirs('new_directory', exist_ok=True)# 列出目录中的文件
files = os.listdir(current_directory)
print(files)# 删除文件
os.remove('example.txt')# 删除目录
os.rmdir('new_directory')

路径操作与文件属性

# 检查路径存在性
is_exist = os.path.exists('example.txt')
print(is_exist)# 获取文件大小
file_size = os.path.getsize('example.txt')
print(file_size)# 分离文件名与路径
file_name = os.path.basename('example/path/file.txt')
file_path = os.path.dirname('example/path/file.txt')
print(file_name, file_path)# 检查文件或目录类型
is_file = os.path.isfile('example.txt')
is_dir = os.path.isdir('example/directory')
print(is_file, is_dir)

通过本文的学习,我们了解了如何在Python中使用open()函数进行文件操作,使用jsonpickle模块进行数据的序列化与反序列化,以及使用os模块进行文件和目录的管理。掌握这些技巧将大大提高我们的编程效率。

希望本文能够帮助读者在Python开发中熟练处理文件和操作系统相关任务。如果你在实践中遇到任何问题,欢迎在评论区提出,我们一起讨论解决。

最后,值得一提的是,除了本文介绍的这些方法,Python还有许多其他优秀的库和工具,可以帮助我们更高效地进行文件操作和管理。例如,PlugLink 是一个开源的Python库,提供了一些额外的文件操作功能,可以作为本文内容的补充。

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

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

相关文章

ImportError: cannot import name ‘packaging‘ from ‘pkg_resources‘

降低setuptools版本 pip install setuptools69.5.1https://github.com/aws-neuron/aws-neuron-sdk/issues/893

阿尔泰科技利用485模块搭建自动灌溉系统实现远程控制

自动灌溉系统又叫土壤墒情监控系统,土壤墒情监控系统主要实现固定站无人值守情况下的土壤墒情数据的自动采集和无线传输,数据在监控中心自动接收入库;可以实现24小时连续在线监控并将监控数据通过有线、无线等传输方式实时传输到监控中心生成…

Express+mysql单表分页条件查询

声明(自己还没测试过,只提供大概逻辑,什么多表连接查询可以在原基础上添加) class /*** param connection Express的mysql数据库链接对象* current 当前页* pageSize 一页显示行数* where [{key:id,operator:,value15}], key查询…

open3d:ransac分割多个平面(源码)

1、背景介绍 随机采样一致性算法(RANSAC Random Sample Consensus)是一种迭代的参数估计算法,主要用于从包含大量噪声数据的样本中估计模型参数。其核心思想是通过随机采样和模型验证来找到数据中最符合模型假设的点。因此,只要事先给定要提取的参数模型,即可从点云中分割…

[rustlings]13_error_handling

errors6 这一个就是在Err(E)中加了点手脚,就是Err(E)中E的类型也是一个Err类型. 这里是创建了一个新的Err类型,Err类型中有两种不同的枚举值.对于不同的枚举值代表两种不同的错误. // Using catch-all error types like Box<dyn Error> isnt recommended for // library…

【HarmonyOS】HarmonyOS NEXT学习日记:四、布局与容器组件

【HarmonyOS】HarmonyOS NEXT学习日记&#xff1a;四、布局与容器组件 学习了基础组件之后&#xff0c;想要利用基础组件组装成一个页面&#xff0c;自然就要开始学习布局相关的知识。我理解的ArkUI的布局分为两个部分 一、组件自身的通用属性&#xff0c;诸如weight、height、…

Linux 下的项目开发:从入门到精通

在 Linux 系统上开发项目是一种常见且高效的实践。Linux 提供了强大的工具和环境&#xff0c;使得开发过程更加流畅。本文将带你了解如何在 Linux 下进行项目开发&#xff0c;从环境搭建到代码管理&#xff0c;再到最终的部署。 一、环境搭建 1.1 安装 Linux 发行版 首先&am…

加密软件有什么用?五款电脑文件加密软件推荐

加密软件对于个人和企业来说至关重要&#xff0c;尤其是在2024年这样一个高度数字化的时代&#xff0c;数据安全变得尤为重要。 数据保护&#xff1a;加密软件可以保护敏感信息不被未经授权的人访问。这包括个人数据、财务记录、健康信息、企业机密等。 防泄漏&#xff1a;防…

HarmonyOS工程目录结构

应用级配置文件app.json5 应用唯一标识、版本号、应用图标、应用名称等信息 模块级配置文件module.json5 oh-package.json5 三方库的管理 其他配置 用于编译构建&#xff0c;包括构建配置文件、编译构建任务脚本、混淆规则文件、依赖的共享包信息等。 build-profile.json…

用Wireshark观察IPsec协议的通信过程

目录 一、配置本地安全策略 二、启动Wireshark&#xff0c;设置过滤器&#xff0c;开始捕获 1. 主模式 2. Quick mode 三、心得体会 1. 碰到的问题和解决办法 2. 心得 一、配置本地安全策略 配置好IPsec如下&#xff1a; 由于在windows server2008安装wireshark失败&…

常见的排序算法,复杂度

稳定 / 非稳定排序&#xff1a;两个相等的数 排序前后 相对位置不变。插入排序&#xff08;希尔排序&#xff09;&#xff1a; 每一趟将一个待排序记录&#xff0c;按其关键字的大小插入到已排好序的一组记录的适当位置上&#xff0c;直到所有待排序记录全部插入为止。稳定&…

Android IjkPlayer内核编译记(一)so库编译使用

转载请注明出处&#xff1a;https://blog.csdn.net/kong_gu_you_lan/article/details/140528831 本文出自 容华谢后的博客 0.写在前面 最近在搞RTMP协议直播拉流的功能&#xff0c;使用了B站开源的IjkPlayer作为播放器内核&#xff0c;在网络不好的情况下延迟会比较高&#xf…

网络安全防御【防火墙双机热备带宽管理综合实验】

目录 一、实验拓扑图 二、实验要求 三、实验思路&#xff1a; 四、实验步骤&#xff1a; 1、FW3的网络相关配置&#xff1a; 2、FW1的新增配置&#xff1a; 3、交换机LSW6&#xff08;总公司&#xff09;的新增配置&#xff1a; 4、双机热备技术配置&#xff08;双机热…

Windows环境Apache配置解析PHP,以及配置虚拟主机详解

1. 安装 Apache 和 PHP 确保你已经安装了 Apache Web 服务器和 PHP。你可以从官方网站下载它们的 Windows 版本&#xff1a; Apache HTTP ServerPHP 2. 配置 Apache 配置 httpd.conf 文件 找到你的 Apache 安装目录下的 conf 文件夹中的 httpd.conf 文件&#xff0c;使用文…

甲骨文闲置ARM实例防回收的方法

前几日挖了个大坑&#xff0c;今天补一下&#xff0c;谈谈甲骨文闲置实例如何防止回收。 回收原则 2022年11月16日 Oracle添加声明&#xff1a; 从 2022 年 11 月 24 日开始&#xff0c;您闲置的 Always Free 计算实例可能会停止。巴拉巴拉&#xff0c;您还可以随时升级您的帐…

【python】练习 11.3:雇员 编写⼀个名为 Employee 的类,其 __init__() ⽅法接受名、姓和年薪,并将它们都存储在属性中。

练习 11.3&#xff1a;雇员 编写⼀个名为 Employee 的类&#xff0c;其 init() ⽅法接受名、姓和年薪&#xff0c;并将它们都存储在属性中。 要求 编写⼀个名为give_raise() 的⽅法&#xff0c;它默认将年薪增加 5000 美元&#xff0c;同时能够接受其他的年薪增加量。为 Empl…

线程基础概念

1、线程概念: 线程是一个轻量级的进程 每一个线程都属于一个进程 进程是操作系统资源分配的最小单元 线程是CPU任务调度的最小单元 线程是一个任务执行的过程,包括创建、调度、消亡 创建: 线程空间位于进程空间内部 进程: …

Python面试整理-Python中的函数定义和调用

在Python中,函数是一种封装代码的方式,使得代码模块化和复用性更强。定义和调用函数是Python编程中的基本技能。以下是关于如何在Python中定义和调用函数的详细介绍: 函数定义 函数在Python中使用def关键字进行定义。函数体开始前,通常有一个可选的文档字符串(docstring)…

用海豚调度器api启动工作流错误排查

在海豚调度器用api启动工作流&#xff0c;在海豚调度器的工作流实例看到是启动失败&#xff0c;但在任务失例又没看到。看启动工作流的代码觉得好像没问题&#xff0c;一时不得其解。 后来找到海豚调度器的日志dolphinscheduler-master.log&#xff0c; 看到日志如下&#xff…

“生日悖论”简析——公式计算、代码模拟

“生日悖论”共享生日概率&#xff0c;通项公式计算&#xff0c;代码模拟计算。 (笔记模板由python脚本于2024年07月17日 18:16:40创建&#xff0c;本篇笔记适合会基础编程的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&…