Python I/O操作笔记

打开文件

使用 open() 函数,其中文件路径可以是相对路径或绝对路径。

模式除了常见的 r(只读)、w(写入,会覆盖原有内容)、a(追加)外,还有一些其他组合模式,如 r+(读写)、w+(读写,会覆盖或创建新文件)、a+(读写,可追加)等。

读取文件

  • read() 函数会一次性读取整个文件的内容,返回一个字符串。如果文件较大,可能会占用较多内存。
  • readline() 每次读取一行内容,返回一个字符串,再次调用会读取下一行,直到文件末尾。
  • readlines() 则将所有行一次性读取并存储到一个列表中,列表中的每个元素是一行内容。

写入文件

write() 方法接收一个字符串作为参数,将其写入到文件中。

关闭文件

调用 close() 非常重要,它确保与文件相关的系统资源被正确释放,避免资源泄漏。如果不及时关闭,可能会导致一些问题,如文件被占用而无法进行其他操作。同时,在使用上下文管理器

(如 with 语句)时,在语句块结束后会自动关闭文件,无需手动调用 close() ,这是一种更简洁和安全的方式。

上下文管理器

上下文管理器是一种编程机制。

简单来说,它定义了在一段代码执行前和执行后的特定行为。

在文件操作中,通过 with 语句使用上下文管理器,在进入 with 代码块时,会自动执行与打开文件相关的操作(比如调用 open 函数打开文件),当代码块执行结束(无论正常结束还是因异常结束),会自动执行后续的清理操作(比如关闭文件)。

它的好处是可以确保相关资源的正确初始化和释放,避免因人为疏忽导致资源未正确处理而引发的问题,使得代码更加简洁、可靠和易于维护。

文件指针

  • 指示当前读取或写入的位置。
  • 使用tell()方法可以查看指针位置
  • 使用 seek() 方法可以将文件指针移动到指定的字节位置。

标准输入输出

  • input() 用于从控制台获取用户输入。
  • print() 用于向控制台输出信息。

二进制文件操作

二进制文件是一种以二进制形式存储信息的文件类型。

与文本文件不同,二进制文件不是以人类可读的字符形式来表示信息,而是使用二进制编码来表示数据。

这些数据可以是各种各样的,比如图像文件中的像素数据、音频文件中的声音波形数据、可执行文件中的机器指令和数据结构等等。

我们依然可以使用 open() 函数来打开二进制文件,只是要添加 'b' 模式标志,比如 open('image.jpg', 'rb') 表示以二进制只读模式打开图像文件。

在读取和写入二进制数据时,通常使用字节数组等方式来处理,以确保数据的准确性和完整性。

字节数组(Byte Array)是一种数据结构。

它是由一系列字节(8 位二进制数)组成的有序集合。字节数组可以用来存储和处理二进制数据。

与普通的数组类似,字节数组中的每个元素都是一个字节,可以通过索引来访问和操作特定位置的字节。

在处理二进制文件等场景中,字节数组常被用来高效地存储和传输二进制数据,方便进行数据的读取、写入、修改等操作。它为处理大量的二进制信息提供了一种方便而灵活的方式。

对于图像、音频等二进制数据,它们有特定的格式和编码规则,在操作时需要遵循这些规则来正确地解析

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

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

相关文章

基于springboot实现旅游管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现旅游管理系统演示 摘要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本旅游管理系统就是在这样的大环境下诞生,其可以帮助使用者在…

周报 | 24.5.20-24.5.26文章汇总

为了更好地整理文章和发表接下来的文章,以后每周都汇总一份周报。 OpenCV与AI深度学习 | YOLOv8自定义数据集训练实现火焰和烟雾检测(代码数据集!)-CSDN博客 周报 | 24.5.13-24.5.19文章汇总-CSDN博客 DeepDriving | 目标检测中…

来自Java的“菱形继承“,你听说过吗?

一、菱形继承的概念 菱形继承又叫做钻石继承,指的是不同的类同时继承自相同的父类,存在一个子类同时继承这些不同的类,即我们常说的“多继承”问题。 例如:B类和C类分别继承A类,而D类同时继承B类和C类。 如此图所示 二…

Oladance、韶音、南卡开放式耳机选哪个?2024年主流产品硬核测评!

近期,不少朋友向我咨询关于挑选开放式耳机的建议,希望找到既适合自己又具有高品质的选项。鉴于市场上开放式耳机品牌繁多,每款产品在音质、佩戴感受及整体性能上的表现各有千秋,正确选择一款耳机成为了音乐爱好者们关注的焦点。错…

R绘图学习笔记

1、R语言绘制海岸线边界 参考: Drawing beautiful maps programmatically with R, sf and ggplot2 — Part 1: Basics 使用R绘制世界地图及纬度统计图 Drawing maps with R. A basic tutorial:https://dr2blog.hcommons.org/2020/03/23/drawing-maps-wit…

【408精华知识】指令字长、存储字长、机器字长大总结!

文章目录 一、三种字长二、三种字长之间的关系三、三种字长与部件位数之间的关系 一、三种字长 机器字长:等于字长,CPU一次能够处理的数据的位数。通常等于寄存器、ALU的位数。例子:windows 64位/32位,这里的64位和32位指的就是该…

Pycharm最新安装教程(最新更新时间2024年5月27日)

ps:本教程Pycharm安装,最新更新时间:2024年5月27日,公众号持续更新关注公众号防失联哦 Pycharm 再次更新了一个小版本。又回到老话题,2023.3.2这个版本是否还能安装,笔者也亲测了一下。还是沿用本站之前的…

Livox-SDK2 用vs2017编译

Livox-SDK2 Livox-SDK2代码去上面下载,文章中给出的是用vs2019进行编译的,生成项目时用的 > cmake .. -G "Visual Studio 16 2019" -A x64 但如果我想用vs2017进行编译,那么只需要将上面语句改为如下: cmake .. -…

企业网络中的网络故障排除

目录 什么是网络故障排除? 企业网络中常见的网络问题 网络故障排除的步骤 1. 确认问题 2. 数据收集 3. 分析和诊断 4. 实施解决方案 5. 验证和监控 常用的网络故障排除工具 如何预防网络故障 结论 在当今高度互联的企业环境中,网络的可靠性和…

PostgreSQL的扩展(extensions)-常用的扩展之pg_store_plans

PostgreSQL的扩展(extensions)-常用的扩展之pg_store_plans pg_store_plans 是一个 PostgreSQL 扩展,用于捕获查询执行计划(execution plans)并将其存储在数据库中。通过存储和分析这些执行计划,数据库管理…

Spring IOC容器与Bean管理详解

一.IOC与DI 1. 传统的开发方式区别 对象直接引用导致对象硬性关联,程序难以扩展维护 loC容器是Spring生态的地基,用于统─创建与管理对象依赖 2. Spring IOC 控制反转 loC控制反转,全称Inverse of Control,是一种设计理念 由代理人来创建与管理对象,消费者通…

请允许自己偶尔情绪不稳定

最近看网上的讨论,发现一件事:许多人都把「情绪稳定」当作一个很难得的优点,狂热地去追捧。 什么叫情绪稳定呢?大抵指这些: 遇到问题时不容易发火或沮丧,而是能立刻切换成解决问题的视角; 心情…

Windows系统使用Docker部署Focalboard团队协作工具详细流程

文章目录 前言1. 使用Docker本地部署Focalboard1.1 在Windows中安装 Docker1.2 使用Docker部署Focalboard 2. 安装Cpolar内网穿透工具3. 实现公网访问Focalboard4. 固定Focalboard公网地址 前言 本篇文章将介绍如何使用Docker本地部署Focalboard项目管理工具,并且结…

铠侠KIOXIA KCD81PJE7T68 E3.S PCIe 5.0 NVMe 企业级SSD

今天介绍一下我们的新产品KCD81PJE7T68,这款企业级NVMe固态硬盘将为您的关键任务应用带来出色的性能和可靠支持。 提升业务效能 提速至关键 在当今高度数字化的商业环境中,企业对于数据存储系统的性能要求愈加苛刻。无论是大数据分析、人工智能训练,还是虚拟化和联…

微信小程序打印功能怎么用?

在数字化时代,微信小程序为我们提供了许多便捷的服务,其中就包括打印功能。而琢贝云打印小程序,作为一款功能强大、操作简便的线上打印平台,更是受到了广大用户的青睐。下面,我将为大家介绍如何使用琢贝云打印小程序完…

下雨天的短视频:成都鼎茂宏升文化传媒公司

下雨天的短视频:捕捉雨中的诗意与温情 在快节奏的现代生活中,短视频以其独特的魅力成为了人们记录生活、分享情感的重要工具。而下雨天,这个常常带有诗意与温情的场景,更是为短视频创作者们提供了无尽的灵感源泉。成都鼎茂宏升文…

Spring常用注解(超全面)

官网:核心技术SPRINGDOC.CN 提供 Spring 官方文档的翻译服务,可以方便您快速阅读中文版官方文档。https://springdoc.cn/spring/core.html#beans-standard-annotations 1,包扫描组件标注注解 Component:泛指各种组件 Controller、…

9. C++通过epoll+fork的方式实现高性能网络服务器

epollfork 实现高性能网络服务器 一般在服务器上,CPU是多核的,上述epoll实现方式只使用了其中的一个核,造成了资源的大量浪费。因此我们可以将epoll和fork结合来实现更高性能的网络服务器。 创建子进程函数–fork( ) 要了解线程我们先来了解…

近五年营收和净利润大幅“败北”,尚品宅配今年押注扩张加盟

​ 《港湾商业观察》廖紫雯 两个月前经历过高管公开信的尚品宅配(300616.SZ),无论是2023年年报,还是今年一季报,虽然公司净利润表现尚佳,但收入端的持续承压仍然备受关注。 今年一季报,尚品宅…

Prometheus监控平台配置--监控集群资源信息

之前我们介绍的都是对单机的监控,今天介绍下用Prometheus对集群多台机器的系统资源进行监控。 我们需要在被压测服务器上安装 node_exporter和mysql_exporter,通过这两个工具对操作系统和mysql进行监控,将收集的数据存储到Prometheus&#xf…