009集:open( )、write( )、close( )函数读写文件实例—python基础入门实例

        一般来说,计算机文件可以分为两类:文本文件和二进制文件。大多数Windows文本文件使用ANSI、OEM或者Unicode编码。常见的文本文件有:大多数Windows文本文件使用ANSI、OEM或者Unicode编码。常用的文本文件格式有ASCII、MIME、*.txt等,这些格式允许系统终端或者简单的文本编辑器接受并显示文本内容,另外还有:.docx:

.csv:这是一种以逗号分隔的文本文件格式,用于存储表格数据,可以被电子表格程序(如Microsoft Excel)读取和编辑。
.xml:这是一种可扩展标记语言文件格式,用于存储和传输结构化数据,常被用于配置文件、数据交换等。
.json:这是一种JavaScript对象表示法文件格式,用于存储结构化数据,广泛用于Web应用程序的数据交换。

首先讲下二进制文件与文本文件区别:

        在文本文件的内部以字符形式存储数据,字符是有编码的,例如GBK (简体中文) 、UTF-8等;在二进制文件的内部以字节形式存储数据、没有编码的概念。二进制文件较为常用,例如Windows中的exe、图片 (jpg、png等),以及Word、Excel和PPT等文件。

使用文件之前要先将文件打开,这通过open()函数实现。

        open()函数的语法如下:open(file, mode='r', encoding=None, errors=None)

open()函数中的4个常用参数,这些参 数的含义如下。

1.file参数 file参数用于表示要打开的文件,可以是字符串或整数。如果file是 字符串,则表示文件名,文件名既可以是当前目录的相对路径,也可以 是绝对路径;如果file是整数,则表示一个已经打开的文件。

2.mode参数

        mode参数用于设置文件打开模式,用字符串表示,例如rb表示以只 读模式打开二进制文件。用于设置文件打开模式的字符串中的每一个字 符都表示不同的含义,对这些字符的具体说明如下。

t:以文本文件模式打开文件。

b:以二进制文件模式打开文件。

r:以只读模式打开文件。
w:以只写模式打开文件,不能读内容。如果文件不存在,则创建 文件;如果文件存在,则覆盖文件的内容。

x:以独占创建模式打开文件,如果文件不存在,则创建并以写入 模式打开;如果文件已存在,则引发FileExistsError异常。

a:以追加模式打开文件,不能读内容。如果文件不存在,则创建 文件;如果文件存在,则在文件末尾追加。(a不能读文件,而a+可以读文件)

+:以更新(读写)模式打开文件,必须与r、w或a组合使用,才能 设置文件为读写模式。

这些字符可以进行组合,以表示不同类型的文件的打开模式,如下 表所示。


3.encoding参数 encoding用来指定打开文件时的文件编码,默认是UTF-8编码,主
要用于打开文本文件。

4.errors参数 errors参数用来指定在文本文件发生编码错误时如何处理。推荐errors参数的取值为'ignore',表示在遇到编码错误时忽略该错误,程序会继 续执行,不会退出。

 详细参数含义如下:

  • file:要打开的文件的路径或文件名。

  • mode:文件的打开模式,可选参数,默认为'r'(只读)。

  • buffering:缓冲策略,可选参数,默认为-1。

  • encoding:文件的编码方式,可选参数,默认为None。

  • errors:编码错误处理方式,可选参数,默认为None。

  • newline:文本模式下换行符的处理方式,可选参数,默认为None。

  • closefd:表示是否在文件关闭时关闭文件描述符,可选参数,默认为True。

  • opener:用于打开文件的自定义打开器,可选参数,默认为None。

读取文件内容

一旦文件被成功打开,你可以使用不同的方法来读取文件内容:

  • read(): 读取整个文件的内容。

  • readline(): 逐行读取文件内容。

  • readlines(): 以列表形式读取文件的所有行。

3. 写入文件内容

如果以写入模式打开文件,你可以使用write()方法来写入内容。请注意,写入模式会覆盖文件中的原有内容。

 

4. 关闭文件

在文件操作完成后,应该使用close()方法关闭文件,以释放系统资源。

pycharm中运行以下代码:

f = open('mytest.txt', 'w+')  # 若不存在文件,则新建,若存在,则覆盖。若未指定路径,文件创建在py文件所在的文件夹
f.write('hello,mytest')
print('第一步:创建mytest.txt文件,写入hello,mytest到文件')
f = open('mytest.txt', 'r+')  # 覆盖模式,运行时关闭txt文件
f.write('''
        春晓
     春眠不觉晓,
     处处闻啼鸟。
     夜来风雨声,
     花落知多少。
''')
print('第二部,打开mytest,覆盖内容')
f = open('mytest.txt', 'a')  # 文件末尾追加模式
f.write('此行为a追加模式追加的内容')
print('第三步:追加模式')
fname = r'd:\mytest2.txt'#路径需要采用r''模式,或双反斜杠,或斜杠(/)
f1 = open(fname, 'a+')
f1.write('此文件目录在D盘\n')#若运行多次,文件内则存在多行文字
print('第四步:指定路径创建文件')
f.close()#关闭文件,以释放系统资源。
#f1.close()

 运行结果如下

第一步:创建mytest.txt文件,写入hello,mytest到文件
第二部,打开mytest,覆盖内容
第三步:追加模式
第四步:指定路径创建文件

进程已结束,退出代码为 0

 运行结果及生成txt文件如下图所示:

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Linux 内核源码分析】进程调度 -CFS 调度器

Linux调度器 Linux内核调度器是负责决定哪个进程在何时执行的组件。它管理着CPU资源的分配和任务的调度,以确保系统资源的合理利用和任务的高效执行。Linux内核中常见的调度器有多种,包括经典的O(1)调度器、CFS(Completely Fair Scheduler&a…

大模型实战笔记04——XTuner 大模型单卡低成本微调实战

大模型实战笔记04——XTuner 大模型单卡低成本微调实战 1、Finetune简介 2、XTuner 3、8GB显存玩转LLM 4、动手实战环节 注: 笔记内容均为截图 课程视频地址:https://www.bilibili.com/video/BV1yK4y1B75J/?spm_id_from333.788&vd_source2882acf…

Flink(十二)【容错机制】

前言 最近已经放假了,但是一直在忙一个很重要的自己的一个项目,用 JavaFX 和一个大数据组件联合开发一个功能,也算不枉我学了一次 JavaFX,收获很大,JavaFX 它作为一个 GUI 开发语言,本质还是 Java&#xff…

嵌套的CMake

hehedalinux:~/Linux/multi-v1$ tree . ├── calc │ ├── add.cpp │ ├── CMakeLists.txt │ ├── div.cpp │ ├── mult.cpp │ └── sub.cpp ├── CMakeLists.txt ├── include │ ├── calc.h │ └── sort.h ├── sort │ ├── …

Spring之AOP源码(一)

文章目录 一、动态代理1. 概念2. Cglib动态代理的使用3. JDK动态代理的使用 二、SpringAOP1. 简介2. Spring AOP使用 一、动态代理 1. 概念 动态代理(Dynamic Proxy)是一种在运行时动态生成代理对象的技术。它是一种设计模式,用于在不修改原…

Web实战丨基于django+html+css+js的电子商务网站

文章目录 写在前面实验目标需求分析实验内容安装依赖库1.登陆界面2.注册界面3.电子商城界面4.其他界面 运行结果写在后面 写在前面 本期内容:基于DjangoHTMLCSSJS的电子商务网站 实验环境: vscode或pycharmpython(3.11.4)django 代码下载地址&#x…

Web自动化测试,一定得掌握的 8 个核心知识点

使用 cypress 进行端对端测试,和其他的一些框架有一个显著不同的地方,它使用 javascript 作为编程语言。传统主流的 selenium 框架是支持多语言的,大多数 QA 会的python 和 java 语言都可以编写 selenium 代码,遇到需要编写 js 代…

距离美赛还有20天,不要忘了阅读往年获奖论文(附04-23年美赛获奖论文)

之前发了很多数模相关的知识,受到了一些人的关注,也有很多人私下问我,距离美赛还有20几天了,还来不来得及。 对此我想说, 来不来得及重要吗? 你名都报了,钱也交了,还是笔不小的钱…

猫狗大战(猫狗识别)

1.问题简介 1.1问题描述 在这个问题中,你将面临一个经典的机器学习分类挑战——猫狗大战。你的任务是建立一个分类模型,能够准确地区分图像中是猫还是狗。 1.2预期解决方案 你的目标是通过训练一个机器学习模型,使其在给定一张图像时能够准…

【模块系列】STM32BMP280

前言 最进想练习下I2C的应用,手上好有BMP280也没用过,就看着机翻手册和原版手册,开始嘎嘎写库函数了。库的命名应该还1是比较规范了吧,就是手册对于最终值的计算方式很迷糊,所以现在也不能保证有可靠性啊,大…

关于运维·关于数据库面试题

目录 一、数据库类型 二、数据库引擎 三、mysql数据库类型 四、mysql的约束添加 五、主从复制原理 六、主从方式有几种 七、mysql主从数据不一致的原因 八、mysql的优化 九、什么是事务的特征 十、数据库读写分离的好处 十一、怎样优化sql语句 十二、mysql的同步方…

基于MAP算法的Turbo译码 -- 公式推导

到此为止,讲完了turbo译码器的子译码器基于MAP算法的译码过程。但在实际使用中,很少直接使用MAP算法进行译码。而是使用改进的LOG-MAP和MAX-LOG-MAP算法进行译码,因此译码的整体流程,包括外信息的计算以及先验信息的获取等。都在后…

openai自定义API操作 API (openai.custom)

OpenAI 提供了一个自定义 API,允许开发者通过编程方式与 OpenAI 的 AI 模型进行交互。使用这个 API,你可以执行各种任务,例如文本生成、推理和翻译等。 以下是使用 OpenAI 自定义 API 的基本步骤: 创建 API 密钥:首先…

谷粒商城-商品服务-品牌管理-阿里云云存储+JSR303数字校验+统一异常处理

阿里云云存储OSS 分布式系统上传文件 分布式系统上传文件 单体应用上传:上传文件到服务器,想获取文件时再向服务器发请求获取文件。 分布式系统上传: 因为有多台服务器,为防止负载均衡导致获取文件时没找到对应的服务器&#xf…

数字信号处理教程学习笔记1-第2章时域中的离散信号和系统

信号处理的任务示意方框图 模拟信号和数字信号分别是啥样的,有啥区别

MySQL数据库设计原则

0.简单的处理逻辑 一.MySQL完整性约束 主键约束 primary key 自增键约束 auto_increment 唯一键约束 unique 非空约束 not null 默认值约束 default 外键约束 foreign key 下面是一个sql语句创建一个表,可以看出来了使用了哪几个约束吗? create table user( id int…

vue前端开发自学,借助KeepAlive标签保持组件的存活

vue前端开发自学,借助KeepAlive标签保持组件的存活&#xff01;如果不想让组件在切换的时候&#xff0c;被默认操作&#xff08;卸载掉了&#xff09;。他们需要使用这个这个表情哦。 下面给大家看看代码情况。 <template><h3>ComA</h3><p>{{ messag…

Arduino开发实例-AS608光学指纹传感器驱动

AS608光学指纹传感器驱动 文章目录 AS608光学指纹传感器驱动1、AS608光学指纹传感器介绍2、硬件准备及接线3、代码实现3.1 指纹录入3.2 指纹匹配验证1、AS608光学指纹传感器介绍 AS608 光学指纹传感器可用于扫描指纹,它也可以通过串行通信将处理后的数据发送到微控制器。 所有…

鸿蒙(HarmonyOS)应用开发指南

1. 概述 1.1 简介 鸿蒙&#xff08;即 HarmonyOS &#xff0c;开发代号 Ark&#xff0c;正式名称为华为终端鸿蒙智能设备操作系统软件&#xff09;是华为公司自 2012 年以来开发的一款可支持鸿蒙原生应用和兼容 AOSP 应用的分布式操作系统。该系统利用“分布式”技术将手机、电…

好用的便签有哪些?windows便签工具在哪打开?

每当我8点准时上班&#xff0c;在等待电脑开机的过程&#xff0c;我都会习惯性地思考整理今天要晚上的任务&#xff0c;列出所要完成的待办事项。随着每一项任务的清晰呈现&#xff0c;我的心情也逐渐明朗起来。当然了&#xff0c;这个时候&#xff0c;我迫切需要一款好用的便签…