Python基础知识(八)--文件操作,备份文件

文件可以用来存储数据。若根据文件内容的不同来给文件分类,可分为:

(1)文本类型:存放文字类数据,读写时使用r、w;

(2)二进制原始数据类型:存放二进制bytes数据,比如图片、音频、视频等,读写时使用rb、wb;

在Python中操作文件记录信息的步骤:

(1)打开文件,或新建一个文件; open()
(2)读取或写入数据内容; read() / write()
(3)关闭文件。 close()

说明:

无论操作文件的过程多么复杂,这个步骤基本是一致的。

(1)打开文件

在操作一个文件前,需要先打开文件。

函数名含义
open(name, mode)创建一个新文件或打开一个已经存在的文件,name指的是文件名,mode指的是访问模式。

常见的mode访问模式有:

模式描述
r以读数据的方式打开文件,这是默认模式,可以省略。
rb以读二进制原始数据的方式打开文件。
w以写数据的方式打开文件。如果文件已存在,则打开文件写入数据是会覆盖原有内容。如果文件不存在,则创建新文件。
wb以写二进制原始数据的方式打开文件。
a使用追加内容形式,打开一个文件。通常用于写数据,此时会把新内容写入到已有内容后。

说明:

(1)访问模式r表示read,即读;

(2)访问模式w表示write,即写。

(2)读数据

在读取文件数据前,该文件必须已存在。

函数名含义
read()从某文件中,一次性读完整的数据。
readlines()按行的方式把文件中的完整内容进行一次性读取,并返回一个列表。
readline()一行一行读文件中的数据内容。

说明:

当访问模式有r时,可以读数据。

(3)写数据

在写文件数据前,文件若不存在,则创建一个新文件。

函数名含义
write(seq)给某文件写数据。

说明:

(1)当访问模式有w时,可以写数据;

(2)当使用访问模式a时,用于追加数据内容,也可以写入数据。

(4)关闭文件

当每次打开文件及使用完毕后,都需要进行关闭文件,用于释放系统内存资源。

函数名含义
close()关闭文件。

总结:

(1)读数据时使用r模式,写数据时使用(w)模式;

(2)不管一个文件有多么复杂,操作步骤都是:打开文件、读/写数据、关闭文件。

[掌握]写数据

给文件写入数据:

函数名含义
write(seq)给某文件写数据。
# 1.打开文件
file = open("./file/test.txt","w")
# 2.写入数据
# file.write("Hello World.")
file.write("123456")
# 3.关闭文件
file.close()
print("已成功写入数据!")
####################扩展写入中文#####################
# 1.打开文件
# file = open("./file/test2.txt","w")
file = open("./file/test2.txt","w",encoding="utf-8")  # 写入中文: encoding编码
# 2.写入数据
file.write("世界和平")
# 3.关闭文件
file.close()
print("数据已写入成功!!")

给文件读取数据:

函数名含义
read()从某文件中,一次性读完整的数据。

说明:

读取文件数据之前,要保证文件已经存在。

为了简化读写数据的操作,也可以使用语法:

with open(xxx, xx) as 变量名:变量名.read()# 变量名.write(xxx)

读取数据的两种方式:

# 1.打开文件
# file = open("./file/hello.txt","r")
file = open("./file/hello2.txt","r",encoding="utf8")
# 2.读数据
texts = file.read()
print(texts)
# 3.关闭文件
file.close()
with open("./file/hello.txt","r") as file:texts = file.read()
print(texts)  #自动关闭文件

其他方式读数据

函数名含义
readlines()按行的方式把文件中的完整内容进行一次性读取,并返回一个列表。
readline()一行一行读文件中的数据内容。

readlines()读取数据:

# 1.打开文件
# file = open("./file/hello.txt","r")
#扩展写入中文
file = open("./file/hello.txt","r",encoding="utf-8")
# 2.读数据
# readlines()
#一次性读取,返回一个列表
lines = file.readlines()  # ['hello python\n', 'abc\n', 'ABCDEFG\n', '123']
print(lines)# 3.关闭文件
file.close()

 readline()读取数据:

# 1.打开文件
# file = open("./file/hello.txt","r")
#扩展写入中文
file = open("./file/hello.txt","r",encoding="utf-8")
# readline()   一行一行的读取,当使用readline()读取数据时, 指针偏移量开始移动;  2.再调用指针继续移动
line = file.readline()
print(line)while True:line = file.readline()if len(line) == 0:  # \nbreakprint(line)# 3.关闭文件
file.close()

对文件进行备份:

# 1.打开原始文件
reader = open("./file/hello.txt","r")
# A.打开目标文件
writer = open("./file/hello[备份].txt","w")# 2.读数据
texts = reader.read()
# B.写数据 -读取的原始文件的数据
writer.write(texts)# 3.关闭文件
reader.close()
# C.关闭目标文件
writer.close()
print("已成功备份文件..")

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

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

相关文章

【GUI设计】基于图像分割的GUI系统(6),matlab实现

博主简介: 如需获取设计的完整源代码或者有matlab图像代码项目需求/合作,可联系主页个人简介提供的联系方式或者文末的二维码。博客内容有疑问可联系沟通(博主邮箱:3249726188qq.com)。 ~~~~~~~~~~~~~~~~~~~~~~~…

实现简易 vuedraggable 的拖拽排序功能

一、案例效果 拖拽计数4实现手动排序 二、案例代码 <draggable:list"searchResult.indicator":group"{ name: indicators }"item-key"field"handle".drag-handle-icon"><divclass"field-item"v-for"(item…

快速创建第一个Spring Boot 项目

一、介绍 Spring Boot 是一个开源的 Java 基础框架&#xff0c;它基于 Spring 框架&#xff0c;用于创建独立、生产级别的基于 Spring 的应用程序&#xff0c;你可以“跑起来”&#xff08;run&#xff09;你的 Spring 应用程序。Spring Boot 让基于 Spring 的应用开发变得更容…

对onlyoffice进行定制化开发

基于onlyoffice8.0源码&#xff0c;进行二次开发&#xff0c;可实现包括但不限于以下的功能 1、内容控件的插入 2、内容空间的批量替换 3、插入文本 4、插入图片 5、添加&#xff0c;去除水印 6、修改同时在线人数限制 7、内容域的删除 8、页面UI的定制化 9、新增插件开发 10、…

生信初学者教程(四):软件

文章目录 RRstudioLinux系统其他软件本书是使用R语言编写的教程,用户需要下载R和RStudio软件用于进行分析。 版权归生信学习者所有,禁止商业和盗版使用,侵权必究 R R语言是一种免费的统计计算和图形化编程语言,是一种用于数据分析和统计建模的强大工具。它具有丰富的统计…

C语言 | Leetcode C语言题解之第429题N叉树的层序遍历

题目&#xff1a; 题解&#xff1a; #define MAX_LEVE_SIZE 1000 #define MAX_NODE_SIZE 10000int** levelOrder(struct Node* root, int* returnSize, int** returnColumnSizes) {int ** ans (int **)malloc(sizeof(int *) * MAX_LEVE_SIZE);*returnColumnSizes (int *)mal…

ArcGIS Desktop使用入门(三)常用工具条——拓扑(下篇:地理数据库拓扑)

系列文章目录 ArcGIS Desktop使用入门&#xff08;一&#xff09;软件初认识 ArcGIS Desktop使用入门&#xff08;二&#xff09;常用工具条——标准工具 ArcGIS Desktop使用入门&#xff08;二&#xff09;常用工具条——编辑器 ArcGIS Desktop使用入门&#xff08;二&#x…

WordPress最佳恶意软件扫描插件:入门级指南

在现代互联网环境中&#xff0c;网站安全已经成为每个网站管理员必须重视的问题。特别是对于使用WordPress的用户来说&#xff0c;由于其普及度高&#xff0c;WordPress网站常常成为黑客的首要攻击目标。幸运的是&#xff0c;有许多优秀的恶意软件扫描插件可以帮助我们保护网站…

[附源码]网上订餐系统+SpringBoot+前后端分离

今天带来一款优秀的项目&#xff1a;网上订餐系统源码 。 系统采用的流行的前后端分离结构&#xff0c;包含了“管理端”&#xff0c;“商家管理端”&#xff0c;“用户购买端” 如果您有任何问题&#xff0c;也请联系小编&#xff0c;小编是经验丰富的程序员&#xff01; 一.…

[000-002-01].第29节:MySQL数据库缓冲池

1、什么是数据缓冲池&#xff1a; 1.InnoDB 存储引擎是以页为单位来管理存储空间的&#xff0c;我们进行的增删改查操作其实本质上都是在访问页面&#xff08;包括读页面、写页面、创建新页面等操作&#xff09;&#xff0c;而磁盘 I/O 需要消耗的时间很多&#xff0c;而在内存…

【Python报错已解决】TypeError: tuple indices must be integers or slices, not str

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…

华为HarmonyOS灵活高效的消息推送服务(Push Kit) -- 7 推送卡片刷新消息

场景介绍 如今衣食住行娱乐影音应用占据了大多数人的手机&#xff0c;一部手机可以满足日常大多需求&#xff0c;但对需要经常查看或进行简单操作的应用来说&#xff0c;总需要用户点开应用体验较繁琐。针对此种场景&#xff0c;HarmonyOS提供了Form Kit&#xff08;卡片开发服…

Python | Leetcode Python题解之第437题路径总和III

题目&#xff1a; 题解&#xff1a; class Solution:def pathSum(self, root: TreeNode, targetSum: int) -> int:prefix collections.defaultdict(int)prefix[0] 1def dfs(root, curr):if not root:return 0ret 0curr root.valret prefix[curr - targetSum]prefix[cu…

知识管理数据库

知识管理数据库&#xff0c;可以分为几类&#xff1a; 灵感库、卡片库、作品库。 灵感库&#xff0c;通常是素材&#xff0c;想法。 片库&#xff0c;是完整的&#xff0c;成段落的文字。 作品库&#xff0c;是文章、专栏&#xff0c;或者书籍。 这三者的关系&#xff0c;好比…

Java文件上传同时传入JSON参数

前言 此篇文章用于解决一个接口内同时完成文件的上传及JSON参数的传入(生产环境已验证); 1.准备接口 import cn.cdjs.vo.UserVO; import cn.hutool.json.JSONUtil; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFi…

黑马头条day3-3自媒体接口作业

黑马头条day3-3自媒体接口作业 1)素材管理 1.1)图片删除 接口描述 说明接口路径/api/v1/material/del_picture/{id}请求方式GET参数Integer id响应结果ResponseResult 返回结果实例&#xff1a; 实现思路 感觉删除比较难写 因为需要判断图片是不是和文章挂钩了 gpt帮了很…

Spring Cloud 教程(二) | 搭建SpringCloudAlibaba

Spring Cloud 教程&#xff08;二&#xff09; | 搭建SpringCloudAlibaba 前言一、SpringBoot 与 SpringCloud 版本对应关系&#xff1a;二、SpringCloud 与 SpringCloudAlibaba版本对应关系&#xff1a;三、SpringCloudAlibaba版本 与 组件版本 对应关系&#xff1a;四、搭建S…

【Redis】主从复制(上)

文章目录 1.主从复制的基本概念基本概念主从复制的作用 2.在一个服务器上建立一个主从结构的redis集群建立主从关系断开主从关系redis中重要配置安全性只读传输延迟 3.主从关系--拓扑结构一主一从一主多从树形主从结构 1.主从复制的基本概念 基本概念 Redis 的主从复制&#…

AI驱动TDSQL-C Serverless 数据库技术实战营-融合智能体与TDSQL-C技术,高效实现二手房数据查询与分析应用

文章目录 什么是TDSQL-C技术创新算力服务器与数据库服务器申请与部署购买 TDSQL-C Mysql Serverless 实例购买HAI高算力服务器 准备工作准备数据下载依赖 案例研发创建数据库写入数据智能体与TDSQL-C 的结合应用第一步配置llama3.1第二步代码开发运行应用测试应用 总结 什么是T…

文献笔记 - Ground effect on rotorcraft unmanned aerial vehicles: a review

这篇博文是自己看文章顺手做的笔记 只是简单翻译和整理 仅做个人参考学习和分享 如果作者看到觉得内容不妥请联系我 我会及时处理 本人非文章作者&#xff0c;文献的引用格式如下&#xff0c;原文更有价值 摘要—— 收集和讨论小型多旋翼无人机受地面效应的影响&#xff0c;…