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("#"):
           continue
       bak.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 = 0
    for grade in newGrageList[1:len(newGrageList)-1]:
        sumGrade += grade
    avg = sumGrade/(len(newGrageList)-2)
    print(avg)
get_average_grade(gradeList)

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

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

相关文章

2024更新阿里云域名优惠口令大全_优惠口令获取方法

2024年阿里云域名优惠口令,com域名续费优惠口令“com批量注册更享优惠”,cn域名续费优惠口令“cn注册多个价格更优”,cn域名注册优惠口令“互联网上的中国标识”,阿里云优惠口令是域名专属的优惠码,可用于域名注册、续…

Python学习之路——文件部分【文件的读取】

目录 先解释一下引文的答案 一、open()打开函数 二、mode常用的三种基础访问模式 三、读-操作相关方法 (一)read方法 (二)readlines方法 (三)with open 语法 (四)操作汇总 …

损失函数篇 | YOLOv8 引入 Shape-IoU 考虑边框形状与尺度的度量

作者导读:Shape-IoU:考虑边框形状与尺度的度量 论文地址:https://arxiv.org/abs/2312.17663 作者视频解读:https://www.bilibili.com 开源代码地址:https://github.com/malagoutou/Shape-IoU/blob/main/shapeiou.py…

代码随想录day21 二叉搜索树进阶

530.二叉搜索树的最小绝对差 题目 给你一棵所有节点为非负值的二叉搜索树,请你计算树中任意两节点的差的绝对值的最小值。 示例: 思考 本题有一种笨办法,就是把二叉树的所有结点都存到一个vector里,因为二叉搜索树是左中右排序…

Spring整合MyBatis框架!!!

搭建环境&#xff1a; pom.xml: <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></pro…

Spring 整合MyBatis

创建工程 pom.xml <?xml version"1.0" encoding"UTF-8"?> 4.0.0 <groupId>com.by</groupId> <artifactId>Spring_MyBatis</artifactId> <version>1.0-SNAPSHOT</version><properties><!-- 项目源码…

高可用分布式部署Spark、完整详细部署教程

前言 Spark 是 UC Berkeley AMP Lab 开源的通用分布式并行计算框架。 Spark基于map reduce算法实现的分布式计算&#xff0c;拥有Hadoop MapReduce所具有的优点&#xff1b;但不同于MapReduce的是Job中间输出和结果可以保存在内存中&#xff0c;从而不再需要读写HDFS&#xff…

数据采集有哪些方法?HTTP代理起到什么作用?

在这个数字化的时代&#xff0c;数据就如同生活中不可或缺的元素&#xff0c;我们的行为、喜好、甚至是想法都被转化成了数字化的信息。那么&#xff0c;现代社会是如何进行数据的采集的呢&#xff1f;让我们一同来看看&#xff01; 1. 网络浏览行为的追踪 在我们浏览互联网的…

【Windows】之微软输入法配置小鹤双拼

前言 Windows 自带的输入法微软输入法本身就是个最简洁、最方便的输入法&#xff0c;不需要去安装多余的第三方输入法软件。同时&#xff0c;微软中文拼音输入法支持双拼输入法&#xff0c;但微软自带的双拼输入法不包含小鹤双拼方案的。所以&#xff0c;在这里将会讲解如何配置…

原生微信小程序如何动态修改svg图片颜色及尺寸、宽高(封装svgIcon组件)解决ios不显示问题

最终效果 前言 动态设置Svg图片颜色就是修改Svg源码的path中的fill属性&#xff0c; 通过wx.getFileSystemManager().readFile读取.xlsx文件 ios不显示需要把encoding设置 binary 把文件转成base64 封装svg-icon组件 1、在项目的components下新建svg-icon文件夹&#xff0c;新…

antd Table 动态数据 合并单元格(合并行)

antd Table 组件动态合并单元格 最近处理table的时候 遇到了要合并同一列的几行的情况&#xff0c;比如第一列的前面三行都是同一个对象的名字&#xff0c;此时合并显示比较妥当&#xff0c;但是数据是后端接口来的&#xff0c;而且可以筛选条件&#xff0c;搜索出来的数据就是…

目标检测 | YOLOv5 训练自标注数据集实现迁移学习

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要了解 YOLOv5 训练自标注数据集&#xff08;自行车和摩托车两种图像&#xff09;进行目标检测&#xff0c;实现迁移学习。YOLOv5 是一个非常流行的图像识别框架&#xff0c;这里介绍一下使用 YOLOv5 给使用 Labelme 标注…

AI模型部署落地综述(ONNX/NCNN/TensorRT等)

导读 费尽心血训练好的深度学习模型如何给别人展示&#xff1f;只在服务器上运行demo怎么吸引别人的目光&#xff1f;怎么才能让自己的成果落地&#xff1f;这篇文章带你进入模型部署的大门。 0 前言 模型部署的步骤&#xff1a; 训练一个深度学习模型&#xff1b; 使用不同…

NNDL总结

第四章 前馈神经网络 4.1 神经元 人工神经元&#xff0c;简称神经元&#xff0c;是构成神经网络的基本单元。 当>0时&#xff0c;为1&#xff0c;兴奋&#xff1b; 当<0时&#xff0c;为0&#xff0c;抑制。 激活函数的性质 1、连续可导的非线性函数。 2、激活函数及其导…

C语言 B树的分析与实现

本文主要说明了B树的概念、应用以及如何用C语言实现B树。 概述 有使用过数据库的朋友都知道&#xff0c;数据库需要存储大量的数据&#xff0c;并且查询数据的性能也需要一定的保证。那么数据库的底层数据结构是如何实现的呢&#xff0c;就是我们要讨论的B树和B树&#xff0c…

【电源专题】电池充放电中常说的0.2C是什么概念

在工作中我们时常会听到老员工说拿这个电池去做一下充放电,以0.2C充,0.2C放。那么这个0.2C到底是啥? 这就要说到电池C-rate概念。在《GB 31241:便携式电子产品用锂离子电池和电池安全要求》中我们可以看到3.7中写了额定容量为C,也就是制造商标明的电池或电池组容量。 那么…

src refspec master does not match any

新项目推送至 Git 空仓库时抛出如下异常 src refspec master does not match any 初始化 init 都做了但反复尝试 git push -u origin master 均无果 后发现权限不够 .... 起初设置为开发者,后变更为了主程序员再次尝试 push 成功 .... 以上便是此次分享的全部内容&#xff0c;…

MyBatisPlus学习二:常用注解、条件构造器、自定义sql

常用注解 基本约定 MybatisPlus通过扫描实体类&#xff0c;并基于反射获取实体类信息作为数据库表信息。可以理解为在继承BaseMapper 要指定对应的泛型 public interface UserMapper extends BaseMapper<User> 实体类中&#xff0c;类名驼峰转下划线作为表名、名为id的…

etcd储存安装

目录 etcd介绍: etcd工作原理 选举 复制日志 安全性 etcd工作场景 服务发现 etcd基本术语 etcd安装(centos) 设置&#xff1a;etcd后台运行 etcd 是云原生架构中重要的基础组件&#xff0c;由 CNCF 孵化托管。etcd 在微服务和 Kubernates 集群中不仅可以作为服务注册…

单片机大小端模式

单片机大小端模式 参考链接 单片机干货-什么是大小端_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Ju4y1M7Tx/?spm_id_from333.337.search-card.all.click&vd_sourcee821a225c7ba4a7b85e5aa6d013ac92e 特此记录 anlog 2024年1月2日