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.mzph.cn/news/600697.shtml

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

相关文章

助力实体店数字化升级,VR智慧门店打造线上逛店体验

近年来,传统实体店业绩增长过于缓慢,实体门店的销售疲态十分明显,甚至于部分城市已经出现大量线下实体店开始关门的现象,因此顺应实体零售数字化升级趋势已经刻不容缓。越来越多的实体门店开始意识到这个问题,并逐步开…

cad快速看图软件免费版(手机在线cad快速看图)

cad快速看图软件免费版(手机在线cad快速看图) 很多机械设计师日常工作过程中涉及到多种格式的cad图纸,cad图纸大多都需要cad设计软件才能打开,然而很多小伙伴并没有下载相应的cad设计软件,这种情况下如何进行cad快速看图呢? 今天…

一文弄懂vue中样式穿透v-deep

1. 前言 在vue3的世界里,有一个style标签的关键字v-deep,官网称之为样式穿透。那他究竟是什么原理呢?又是怎么工作的呢?让我们一起探究一下。 2. 准备工作 需要实现搭建一个vue3的环境,我这里使用的是vitevue3的架构…

使用JavaScript制作一个简单的天气应用

随着Web开发技术的不断发展,JavaScript已经成为前端开发中不可或缺的一部分。它不仅可以用于创建动态和交互式的用户界面,还可以用于处理各种复杂的任务,如数据验证、动态内容更新、实时通信等。以下是一个使用JavaScript来创建一个简单天气应…

【OJ】单链表刷题

力扣刷题 1. 反转链表(206)1.1 题目描述1.2 题目分析1.2.1 头插法1.2.2 箭头反转 1.3 题目代码1.3.1 头插入1.3.2 箭头反转 2.合并两个有序链表(21)2.1 题目描述2.2 题目分析2.3 题目代码 1. 反转链表(206)…

视频转音频软件哪个好? 11 个高效的视频转音频转换器分享

网络上拥有数百个值得观看和聆听的音乐视频。但要聆听喜爱的音乐,用户必须观看整个视频,即使只有音乐让他们兴奋。那么,如何从视频中提取音频呢?简单的答案是使用视频到音频转换器将视频转换为音频格式并将其保存在您的设备上以供…

gflags.exe 工具入门详解

gflags.exe 是 Windows 平台上的一个调试工具,它来自 Microsoft Debugging Tools for Windows 工具集。gflags(全局标志)主要用于设置和管理针对特定进程或系统的调试选项以及性能监视特性。这个工具可以帮助开发者对程序进行更深入的故障排查…

【读书】《白帽子讲web安全》个人笔记Ⅰ-1

目录 前言: 第1章 我的安全世界观 1.1 Web安全简史 1.1.1中国黑客简史 1.1.2黑客技术的发展历程 1.1.3web安全的兴起 1.2黑帽子,白帽子 1.3返璞归真,揭秘安全的本质 1.4破除迷信,没有银弹 1.5安全三要素 1.6如何实施安…

使用pymysql框架连接和查询MySQL数据库

使用pymysql框架连接和查询MySQL数据库步骤: 前提:安装并import pymysql模块 1、使用 pymysql.connect()函数创建一个数据库连接对象 2、正确填写数据库配置信息,地址、端口、用户名、密码、数据库名称 3、创建游标…

微服务-sentinel-基本案例,持久化

sentinel 功能 限流 限流文档 直接拒绝:触发阀值直接抛弃。冷启动:在一段时间内针对突发流量缓慢增长处理数量。 3)匀速器:请求以均匀的速度通过。 降级降级文档 1)RT 统计时间内,大于预设请求数量&…

MySQL数据库的查询操作

MySQL单表查询 字段解析字段名字段类型雇员编号idint雇员姓名namevarchar(30)雇员性别sexenum雇用时期hire_datedate雇员职位postvarchar(50)职位描述job_descriptionvarchar(100)雇员薪水salarydouble(15,2)办公室officeint部门编号dep_idint #创表 CREATE TABLE company.em…

架构(1)

目录 1.如何理解架构的演进? 2.如何理解架构的服务化趋势? 3.架构中有哪些技术点? 4.谈谈架构中的缓存应用? 5.在开发中缓存具体如何实现? 1.如何理解架构的演进? 初始阶段的网站架构应用服务和数据服…

tcl 基础

exec catch file mkdir

【QT】QStandardItemModel类的应用介绍

目录 1 概述 2 常用方法 3 QStandardItemModel的使用 3.1 界面设计与主窗口类定义 3.2 系统初始化 3.3 从文本文件导入数据 3.4 数据修改 3.5 单元格格式设置 3.6 数据另存为文件 1 概述 QStandardItemModel是标准的以项数据(itemdata)为基础的…

【管理篇 / 恢复】❀ 08. 文件权限对macOS下用命令刷新固件的影响 ❀ FortiGate 防火墙

【简介】虽然上篇文章中成功的在macOS下刷新了固件,但是很多小伙伴在实际操作中碰到了无法成功的状况,我们来看看最常见的一种。 在/private/tftpboot目录拷贝另一个版本的固件文件,具体拷贝过程不再详述。 打开终端,输入命令 sud…

Do you know about domestic CPUs

Do you know about domestic CPUs CPU指令集国产CPU CPU指令集 国产CPU 参考文献 国产CPU之4种架构和6大品牌指令集及架构一文深入了解 CPU 的型号、代际架构与微架构国产GPU芯片厂商有哪些深入GPU硬件架构及运行机制详解服务器GPU架构和基础知识

编写一个弹跳小球的程序,小球在窗口中四处反弹(python)

import pygame import random# 初始化Pygame pygame.init()# 窗口尺寸 width 800 height 600# 创建窗口 screen pygame.display.set_mode((width, height)) pygame.display.set_caption("Bouncing Ball")# 小球初始位置和速度 ball_radius 20 ball_color (255, …

TCP和UDP的区别是什么

TCP和UDP是互联网协议中两个重要传输层协议。 一、工作原理 1.1 TCP TCP是一种面向连接的协议,通过三次握手建立可靠的连接。发送端将数据分割成多个TCP段,并通过IP进行传输。接收端接收到TCP后进行重组,并通过确认机制确保数据的可靠性。…

HUAWEI华为荣耀MagicBook X 15酷睿i5-10210U处理器集显(BBR-WAH9)笔记本电脑原装出厂Windows10系统

链接:https://pan.baidu.com/s/1YVcnOP5YKfFOoLt0z706rg?pwdfwp0 提取码:fwp0 MagicBook荣耀原厂Win10系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、华为/荣耀电脑管家等预装程序 文件格式:esd/wim/swm 安装…

docker 部署haproxy cpu占用特别高

在部署mysql 主主高可用时&#xff0c;使用haproxy进行负载&#xff0c;在服务部使用的情况下发现服务器cpu占比高&#xff0c;负载也高&#xff0c;因此急需解决这个问题。 1.解决前现状 1.1 部署配置文件 cat > haproxy.cfg << EOF globalmaxconn 4000nbthrea…