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

来自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 .. -…

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项目管理工具,并且结…

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

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

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

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

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…

快速版-JS基础01书写位置

1.书写位置 2.标识符 3.变量 var:声明变量。 (1).变量的重新赋值 (2).变量的提升 打印结果:console.log(变量名) 第一个是你写在里面的。 第二个是实际运行的先后之分,变量名字在最前面。变量…

Delphi 开发Android Service四种模式初探

前言: 本篇文章正经来说,其实算是我的学习履历,是我在不断的摸索过程中,总结的经验,不能算是一篇正经的学术文章。现在DELPHI的学习资料太少了,就算是有也都是基于老版本DELPHI,或VCL相关的内容…

26计算机操作系统408考研--操作系统设备管理篇章(五)

文章目录 一、设备是什么?设备管理目标和任务I/O设备分类 二、I/O系统控制方式程序直接控制方式中断控制方式DMA控制方式通道控制方式 I/O软件的组成I/O软件设计目标和原则I/O软件结构设备驱动程序设备无关软件用户层软件用户层的I/O软件 具有通道的设备管理通 道通…

Day37 代码随想录打卡|二叉树篇---对称二叉树

题目: 给你一个二叉树的根节点 root , 检查它是否轴对称。 方法:本体可以用递归和迭代两种方法,但我更喜欢迭代的方式,因此使用迭代的方式做一下。首先我们分析一下不对称的情况。因为对称的情况很简单,即两…