Python基础(十九、文件操作写入与追加)

文章目录

  • 一、文件的写入(使用 "w" 模式)
  • 二、文件的追加(使用 "a" 模式)
  • 三、文件备份案例
  • 接之前的答案

在 Python 中,open() 是一个内置函数,用于打开文件并返回文件对象。它是处理文件输入输出的主要方式之一。

下面是使用 open() 方法时需要注意的事项和好处:

注意事项:

  • 打开文件后,要记得关闭文件,这样可以释放系统资源。
  • 在打开文件时,应该指定正确的模式(如读取、写入或追加)。
  • 在使用文本文件时,应该指定正确的编码方式,以正确地解析和处理文件中的文本内容。
  • 在处理二进制文件时,不需要指定编码方式。

好处:

  • open() 方法使得 Python 可以非常方便地读取和写入文件,从而使文件操作变得更加简单。
  • 通过 open() 方法,Python 可以读取各种格式的文件,如文本文件、二进制文件、CSV 文件、JSON 文件等等。
  • 通过 open() 方法,Python 可以将读取的文件内容转换为特定的数据类型,如字符串、整数、浮点数、列表、字典等等。
  • open() 方法支持多种模式,如读取、写入、追加、二进制等等,可以根据不同的需求进行选择。

一、文件的写入(使用 “w” 模式)

在使用 “w” 模式进行文件写入时,需要注意以下事项:

  • 内容写入内存:写入的内容首先会被写入内存缓冲区中,并不直接写入磁盘文件。这是为了提高写入效率,减少频繁的磁盘写入操作。

  • 刷新内容到磁盘:为了确保内容被写入磁盘文件,可以通过 flush 方法手动刷新缓冲区,将内容写入磁盘。也可以通过 close 方法来关闭文件对象,它会自动执行刷新操作。

  • 文件不存在时创建文件:如果指定的文件不存在,Python 会自动创建一个新的文件,并将写入的内容写入其中。

  • 文件存在时清空内容重写:如果指定的文件已经存在,Python 会清空文件中的内容,然后将新的内容写入其中。

下面是一个示例代码,演示了如何使用 “w” 模式进行文件写入:

with open("example.txt", "w") as file:file.write("Hello, World!\n")file.write("This is an example.")# 使用 flush 方法刷新缓冲区,将内容写入磁盘file.flush()# 或者直接使用 close 方法关闭文件对象,它会自动执行刷新操作# file.close()

二、文件的追加(使用 “a” 模式)

在使用 “a” 模式进行文件追加时,需要注意以下事项:

  • 内容写入内存:与使用 “w” 模式一样,写入的内容首先会被写入内存缓冲区中,而不是直接写入磁盘文件。

  • 刷新内容到磁盘:同样可以通过 flush 方法手动刷新缓冲区,或者使用 close 方法自动执行刷新操作。

  • 文件不存在时创建文件:如果指定的文件不存在,Python 会自动创建一个新的文件,并将写入的内容写入其中。

  • 文件存在时末尾追加内容:如果指定的文件已经存在,Python 会将新的内容追加到文件的末尾。

下面是一个示例代码,演示了如何使用 “a” 模式进行文件追加:

with open("example.txt", "a") as file:file.write("This is an additional line.\n")file.write("This is another line.")# 使用 flush 方法刷新缓冲区,将内容写入磁盘file.flush()# 或者直接使用 close 方法关闭文件对象,它会自动执行刷新操作# file.close()

三、文件备份案例

本人比较懒,就直接在工作空间操作备份了,文件路径大家可以自定义。
将文件备份到一个新的文件.bak中,去掉原文件中的备注行(# xxxx)
实现代码如下:

with open("D:/xxx/answer.py","r", encoding="utf-8") as file:bak = open("D:/xxx/answer.py.bak","w", encoding="utf-8")for line in file:if line.startswith("#"):continuebak.write(line)bak.close()

在这里插入图片描述
在这里插入图片描述

接之前的答案

上一节忘记写这个的答案了,这里补一下[Python基础(十七、函数进阶用法)]答案(https://editor.csdn.net/md/?articleId=135401777)
题目:
编写一个函数 get_average_grade,接受一个学生的成绩列表作为参数,并计算该学生的平均分。要求忽略最高分和最低分后的成绩,即去掉一个最高分和一个最低分后再计算平均分。

'''
编写一个函数 get_average_grade,
接受一个学生的成绩列表作为参数,
并计算该学生的平均分。
要求忽略最高分和最低分后的成绩,
即去掉一个最高分和一个最低分后再计算平均分。
'''
gradeList = [99,82,93,63,63,67,87,74,46]
def get_average_grade(gradeList):# 排序,默认升序newGrageList = sorted(gradeList)sumGrade = 0for grade in newGrageList[1:len(newGrageList)-1]:sumGrade += gradeavg = sumGrade/(len(newGrageList)-2)print(avg)
get_average_grade(gradeList)

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

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

相关文章

SCADE—产品级安全关键系统的MBD开发套件

产品概述 随着新能源三电、智能驾驶等新技术的应用,汽车中衍生出很多安全关键零部件,如BMS、VCU、MCU、ADAS等,相应的软件在汽车中的比重越来越大,并且安全性、可靠性要求也越来越高。ANSYS主要针对安全关键零部件的嵌入式产品级软…

Springboot和Spring有什么区别

SpringBoot和Spring的关系 不是:从马车到汽车那种交通出行的颠覆,从燃油车到纯电动车那种能源利用的变革,从人工驾驶到AI智能那种驾驶方式的升级。总之,不是产品的升级换代,不是谁要替换谁。而是:汽车从手…

tcl 基础

exec catch file mkdir

认识机器学习【woodwhales.cn】

为了更好的阅读体验,建议移步至笔者的博客阅读:认识机器学习 生活中的问题1:居民家庭生活用气价格 北京燃气小程序在线咨询,查询北京居民家庭生活用气价格 上图价格梯度,可以由文字转换成表格: 第一档用气…

虾皮、Lazada店铺流量怎么提升?自养号优势及测评系统如何搭建?

虾皮、Lazada是东南亚地区最大的购物平台之一,吸引了大量的买家和卖家。在竞争激烈的虾皮市场上,如何提升店铺的流量成为许多卖家关注的问题。以下是关于如何提升虾皮、Lazada店铺流量的一些建议。 一、店铺流量怎么提升? 首先,进行优质的…

海盗传说^^

欢迎来到程序小院 海盗传说 玩法&#xff1a;海盗版俄罗斯方块&#xff0c;上键 ↑变换、 左键 ← 左移、右键 → 右移、下键 ↓ 加速, 快去玩海盗版俄罗斯方块吧^^。开始游戏https://www.ormcc.com/play/gameStart/240 html <canvas id"canvas" moz-opaque>&…

SESV:通过预测和纠错实现精确的医学图像分割

SESV: Accurate Medical Image Segmentation by Predicting and Correcting Errors SESV&#xff1a;通过预测和纠错实现精确的医学图像分割背景贡献实验方法Thinking SESV&#xff1a;通过预测和纠错实现精确的医学图像分割 286 IEEE TRANSACTIONS ON MEDICAL IMAGING, VOL. …

vue3中使用echarts:tooltip的trigger为axis tooltip不显示问题

vue3中使用echarts时&#xff0c;tooltip的trigger设置为axis时formatter不触发 tooltip: {trigger: "axis",formatter: function (params) {console.log("params", params);},axisPointer: {type: "shadow", // 阴影指示器}, },解决办法&#…

配置文件的创建和部署

配置描述文件&#xff08;Configuration Profiles&#xff09;的格式为xml&#xff0c;其提供了一个非常容易的方式去给电脑、移动设备或用户定义一些设置或限制&#xff0c;你可以使用Jamf Pro去创建这样的配置文件。 &#xff08;配置文件的负载&#xff09; 有关配置文件的配…

【HarmonyOS开发】ArkUI-X 跨平台框架(使用ArkTs开发AndroidIOS)

ArkUI-X 跨平台框架进一步将 ArkUI 开发框架扩展到了多个OS平台&#xff0c;目前支持OpenHarmony、HarmonyOS、Android、 iOS&#xff0c;后续会逐步增加更多平台支持。开发者基于一套主代码&#xff0c;就可以构建支持多平台的精美、高性能应用。 一、跨平台框架有哪些? 1、…

Mendix 创客访谈录|太迅的闪电侠如何发动闪电战

本期创客 房杰 上海太迅自动识别技术有限公司 移动开发经理 大家好&#xff0c;我叫房杰&#xff0c;软件工程专业毕业&#xff0c;目前任职于上海太迅自动识别技术有限公司&#xff0c;任职的部门是软件事业部&#xff0c;担任移动开发经理。 上海太迅是一家专注于自动识…

HAL库之硬件SPI配置

一、设置RCC时钟(复位和时钟控制&#xff09; 设置高速外部时钟HSE 选择外部晶振 Disable&#xff1a;内部时钟BYPASS Clock Source&#xff1a;外部旁路时钟源&#xff0c;指无需使用外部晶体时所需的芯片内部时钟驱动组件&#xff08;%外部晶振起振需要内部有时钟驱动组件&a…