Python笔记 文件的写,追加,备份操作

一、文件的写操作

案例演示:

# 1.打开文件
f = open('python.txt','w')

# 2.文件写入
f.write('hello world')

# 3.内容刷新
f.flush()

注意:

直接调用write,内容并为真正的写入文件,二十会积攒在程序的内存中,称之为缓冲区

当调用flush的时候,内容会真正写入文件

这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)

# 演示文件的写入
import time

# 打开文件,不存在的文件  文件不存在w模式会帮我们创建文件 当文件存在会覆盖
f = open("D:/test.txt","w",encoding="UTF-8")

# write写入
f.write("hello world!")    # 内容写入到内存中

# flush刷新
f.flush()                   # 将内存中积攒的内容,写入到硬盘的文件中
time.sleep(600000)

# close关闭
f.close()                   # close方法内置了flush功能
# 打开一个存在的文件

总结:

1.写入文件使用open函数的 “w”模式进行写入

2.写入的方法有:

    w 模式,文件不存在,会创建新文件

    w 模式,文件存在,会清空原有内容

    close()方法,带有flush()方法的功能

二、文件的追加操作
# 文件的追加操作

# 打开文件,不存在的文件
f = open("D:/test.txt","a",encoding="UTF-8")

# write写入
f.write("黑马程序员")

# flush刷新
f.flush()

# close关闭
f.close()

# 打开一个存在的文件
f = open("D:/test,txt","a","encoding")

# write写入,flush刷新
f.write("学Python最佳选择")

# close关闭
f.close()

总结:

1.追加写入文件使用open函数的“a”模式进行写入

2.追加写入的方法有(和w模式一致):

write(),写入内容

flush(),刷新内容到硬盘zhpng

3.注意事项

a模式,文件不存在,会创建新文件

a模式,文件存在,会在原有内容后面继续写入

可以使用“\n”来写换行符

三、文件的备份

需求:有一份账单文件,记录了消费收入的具体记录,内容如下:

将内容复制并保存为bill.txt文件

1.读取文件

2.将文件写出到bill.txt.bak文件作为备份

3.同时,将文件内标记为测试的数据行丢失

实现思路:

open和r模式打开一个文件对象,并读取文件

open和w模式打开另一个文件对象,用于文件写出

for循环内容,判断是否是测试不是测试就write写出,是测试就continue跳过

将2个文件对象均close()

"""
 演示文件操作综合案例:文件备份
"""

# 打开文件得到文件对象,准备读取
fr = open("D:/bill.txt","r",encoding="UTF-8")

# 打开文件得到文件对象,准备写入
fw = open("D:/bill.txt.bak","w",encoding="UTF-8")

# for循环读取文件
for line in fr:
    line = line.strip()
    # 判断内容,将满足的内容写出
    if line.split(".")[4] == "测试":
        continue  # continue进入下一次循环,这一次后面的内容就跳过了
    # 将内容写出去
    fw.write(line)
    # 由于前面对内容进行了strip()操作,所以要手动的写出换行符
    fw.write("\n")

# close2个文件对象
fr.close()
fw.close()  # 写出文件调用close()会自动flush()

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

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

相关文章

【Matlab】CNN-LSTM分类 卷积神经网络-长短期记忆神经网络组合模型(附代码)

资源下载: https://download.csdn.net/download/vvoennvv/89466499 分类算法资源合集:https://download.csdn.net/download/vvoennvv/89466519 目录 Matlab SVM支持向量机分类算法 Matlab RF随机森林分类算法 Matlab RBF径向基神经网络分类算法 Ma…

轻松掌握App推广命脉!Xinstall渠道效果统计功能,你的营销利器

在移动互联网时代,App的推广与运营成为了每个开发者、运营者必须面对的重要课题。然而,如何精准地掌握App的推广效果,优化渠道投放,成为了众多推广者心中的痛点和难题。今天,我们将为大家介绍一款能够轻松解决这一问题…

象战----第十二届中山市邀请赛正赛

本次的题解一定让大家享受脑细胞碰撞与再生死亡的感受!定然酣畅淋漓!请耐心的读完 简称:让脑袋死机。。。 象战 老规矩先分析在打码: 注意到题目告诉我们:四个角落是不能放的 那么 我们设象在(i,j).(注意&#xff1a…

ONLYOFFICE 8.1版本桌面编辑器测评:重塑办公效率的巅峰之作

在数字化办公日益普及的今天,一款高效、便捷且功能强大的桌面编辑器成为了职场人士不可或缺的工具。ONLYOFFICE 8.1版本桌面编辑器凭借其卓越的性能和丰富的功能,成功吸引了众多用户的目光。今天,我们将对ONLYOFFICE 8.1版本桌面编辑器进行全…

Spring Boot整合Druid:轻松实现SQL监控和数据库密码加密

文章目录 1 引言1.1 简介1.2 Druid的功能1.3 竞品对比 2 准备工作2.1 项目环境 3 集成Druid3.1 添加依赖3.2 配置Druid3.3 编写测试类测试3.4 访问控制台3.5 测试SQL监控3.6 数据库密码加密3.6.1 执行命令加密数据库密码3.6.2 配置参数3.6.3 测试 4 总结 1 引言 1.1 简介 Dru…

Kompas AI自然语言处理能力对比

一、引言 自然语言处理(NLP)是衡量人工智能(AI)系统智能程度的重要指标之一。NLP技术的进步使得机器能够理解、解释和生成人类语言,在各个领域中发挥了巨大的作用。本文将对比Kompas AI与其他主要AI产品在NLP方面的表…

北京互动阅读app开发,“身”临其境,阅读精彩

随着大数据与智能化的不断发展进步,线上阅读软件也越来越多,为了缓解对传统翻页阅读方式产生的疲劳,人们对线上阅读提出了新的要求。对此,与智能科技相结合的北京互动阅读app开发,以高互动、高体验感的优势&#xff0c…

【LLM】GLM系列模型要点

note 文章目录 noteGLM一、数据层面1. 预训练数据 二、GLM4模型层面三、GLM-4 All Tools四、GLM的其他技术Reference GLM Paper:https://arxiv.org/abs/2406.12793 GitHub:https://github.com/THUDM HF:https://huggingface.co/THUDM 经过…

监督学习(二)线性分类

每个样本都有标签的机器学习称为监督学习。根据标签数值类型的不同,监督学习又可以分为回归问题和分类问题。分类和回归是监督学习的核心问题。 回归(regression)问题中的标签是连续值。分类(classification)问题中的标签是离散值。分类问题根据其类别数量又可分为…

ADC + 数码管显示

REVIEW 前面已经学习过: ADC:ADC模-数转换原理与实现-CSDN博客 key:基于状态机的按键消抖实现-CSDN博客 数码管:SPI接口的74HC595驱动数码管实现_用spi和hc74595通信-CSDN博客 1. 今日摸鱼计划 按键启动ADC 将结果显示在数码管…

OnlyOffice-8.1版本深度测评

2024年6月19日,ONLYOFFICE 发布了最新版本 8.1,带来了超过30项新功能和432个 bug 修复。本文将详细评测该版本的新功能和改进,帮助用户全面了解这一升级带来的实际体验提升。 一、功能全面的 PDF 编辑器 PDF 是日常工作中不可或缺的文件格式…

汽车汽配图纸管理、产品研发管理解决方案

汽车汽配图纸管理、产品研发管理解决方案 随着全球汽车市场的快速发展,中国汽车汽配行业迎来了前所未有的发展机遇。然而,在这一过程中,企业也面临着诸多挑战,如研发能力的提升、技术资料管理的复杂性、以及跨部门协作的困难等。为…

【CPP】插入排序:直接插入排序、希尔排序

目录 1.插入排序1.1直接插入排序简介代码分析 1.2直接插入对比冒泡排序简介代码对比分析(直接插入排序与冒泡的复杂度效率区别) 1.3希尔排序简介代码分析 1.插入排序 基本思想:把一个待排数字按照关键码值插入到一个有序序列中,得到一个新的有序序列。 …

施耐德ATV310变频器参数设置

1、ATV610变频器参数设置请参考下面文章链接: 施耐德ATV610变频器MODBUS通信应用(SMART PLC)-CSDN博客文章浏览阅读131次。提升MODBUS-RTU通信数据刷新速度的常用方法_modbus rtu通讯慢-CSDN博客文章浏览阅读1k次。https://rxxw-control.blog.csdn.net/article/det…

03 Shell编程之循环语句与函数

目录 3.1 for 循环语句 3.1.1 for 语句的结构 3.1.2 for 语句应用示例 1. 根据姓名列表批量添加用户 2. 根据IP地址列表检查主机状态 3.2 使用while循环语句 3.2.1 while语句的结构 3.2.2 while语句应用示例 1. 批量添加规律编号的用户 2. 猜价格游戏 3.3 until 循环语句 3.…

IDEA集成Docker实现快捷部署

本文已收录于专栏 《运维》 目录 背景介绍优势特点操作步骤一、修改Docker配置二、配置Docker插件三、编写Maven插件四、构建Docker镜像五、创建Docker容器 总结提升 背景介绍 在我们手动通过Docker部署项目的时候,都是通过把打包好的jar包放到服务器上并且在服务器…

深圳比创达电子EMC|EMI电磁干扰行业:提升电子产品质量的关键

随着电子技术的飞速发展,电磁干扰(EMI)问题日益凸显,成为影响电子产品性能和市场竞争力的重要因素。 一、EMI电磁干扰行业的概述 电磁干扰,即电子设备在运行过程中产生的电磁波对其他设备或系统产生的干扰。这种干扰…

视频集市新增支持多格式流媒体拉流预览

流媒体除了常用实时流外还有大部分是以文件的形式存在,做融合预览必须要考虑多种兼容性能力,借用现有的ffmpeg生态可以迅速实现多种格式的支持,现在我们将按需拉流预览功能进行了拓展,正式支持了ffmpeg的功能,可快捷方…

Kotlin 中的数据类型有隐式转换吗?

在 Kotlin 中,数据类型不可隐式转换。在 Java 中,如果数据是从小到大,是可以隐式转换的,数据类型将自动提升。 下面以 int 类型的数据为例,在 Java 中这样写是可以的: int a 2312; long b a;但是在 Kot…

Python21 k-近邻算法

k-近邻算法(k-Nearest Neighbors, k-NN)是一种基本且广泛使用的分类与回归算法。它的工作原理非常直观:通过测量不同特征点之间的距离,来进行分类或回归分析。 1.K-NN算法 基本概念 1.基于实例的学习:k-NN是一种基于…