Python中文件操作(读、写、关闭)

news2024/9/24 19:23:55

目录

一.什么是文件

二.python文件操作

1.open()打开函数

 注意

mode常用的三种基础访问模式

2.读操作相关方法

read()方法:

readlines()方法:

 readline()方法

 for循环读取文件行

 3.close()关闭文件对象

操作汇总

实例

三.写操作快速操作

 注意

 

一.什么是文件

内存中存放的数据在计算机关机后就会消失。要长久保存数据,就要使用硬盘、光盘、U盘等设备。为了便于数据的管理和检索,引入了“文件”的概念。
一篇文章、一段视频、一个可执行程序,都可以被保存为一个文件,并赋予一个文件名。操作系统以文件为单位管理磁盘中的数据。一般来说,文件可分为文本文件、视频文件、音频文件、图像文件、可执行文件等多种类别。

二.python文件操作

想想我们平常对文件的基本操作,大概可以分为三个步骤(简称文件操作三步走):

  • 打开文件
  • 读写文件
  • 关闭文件

注意

可以只打开和关闭文件,不进行任何读写

1.open()打开函数

语法:open(name, mode, encoding)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)。
mode:设置打开文件的模式(访问模式):只读、写入、追加等。
encoding:编码格式(推荐使用UTF-8)

演示

f =open('D:/ceshi.txt','r',encoding='UTF-8')
print(f.read())

结果是

 注意

要用‘/’而非‘\’
此时的`f是`open`函数的文件对象,对象是Python中一种特殊的数据类型,拥有属性和方法,可以使用对象.属性或对象.方法对其进行访问.

mode常用的三种基础访问模式

模式描述
r以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。
w打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除。如果该文件不存在,创建新文件。
a打开一个文件用于追加。如果该文件已存在,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

2.读操作相关方法

read()方法:

文件对象.read(num)
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据。

readlines()方法:

readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素。

演示

f =open('D:/ceshi.txt','r',encoding='UTF-8')
print(f.read(10))
print("---------------")
print(f.readlines())

结果是

 readline()方法

一次读取一行

演示

f =open('D:/ceshi.txt','r',encoding='UTF-8')
print(f"第一行是{f.readline()}")
print("---------------")
print(f"第二行是{f.readline()}")
f.close()#关闭文件

 结果是

 for循环读取文件行

演示

f =open('D:/ceshi.txt','r',encoding='UTF-8')
i=0
for line in f:
    i+=1
    print(f"第{i}行的内容是:{line}")

 结果是

 3.close()关闭文件对象

f = open("python.txt","r")
f.close()
#最后通过close,关闭文件对象,也就是关闭对文件的占用
#如果不调用close,同时程序没有停止运行,那么这个文件将一直被Python程序占用。

with open 语法

with open("python.txt", "r") as f:
        f.readlines()
#通过在with open的语句块中对文件进行操作
#可以在操作完成后自动关闭close文件,避免遗忘掉close方法

操作汇总

操作功能
文件对象= open(file, mode, encoding)打开文件获得文件对象
文件对象.read(num)读取指定长度字节不指定num读取文件全部
文件对象.readline()读取一行
文件对象.readlines()读取全部行,得到列表
for line in文件对象for循环文件行,一次循环得到一行数据
文件对象.close()关闭文件对象
with open() as f通过with open语法打开文件,可以自动关闭

实例

将下内容复制到tes.txt文档中

There are moments in life when you miss someone so much that you just want to pick them from your dreams and hug them for real! Dream what you want to dream;go where you want to go;be what you want to be,because you have only one life and one chance to do all the things you want to do.
  May you have enough happiness to make you sweet,enough trials to make you strong,enough sorrow to keep you human,enough hope to make you happy? Always put yourself in others’shoes.If you feel that it hurts you,it probably hurts the other person, too.

通过文件读取操作,读取此文件,统计to单词出现的次数

代码

f =open('D:/ceshi.txt','r',encoding='UTF-8')
#法1
content = f.read()
count = content.count("to")
print(f"单词to的数量是:{count}")
f.close()
#法2
# count=0
# for line in f:
#
#     line = line.strip( )#除去开头和结尾的空格以及换行符
#     words = line.split(" ")
#     print(words)
#     for word in words:
#         if word == "to":
#             count+=1
#
# print(f"单词to的数量是:{count}")
# f.close()

三.写操作快速操作

演示

 注意:
直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
当调用flush的时候,内容会真正写入文件
这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)

演示

 

 注意

  • wirte(),写入内容
  • flush(),刷新内容到硬盘中
  • w模式,文件不存在,会创建新文件,文件存在,会清空原有内容
  • close()方法,带有flush()方法的功能

 

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

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

相关文章

Linux性能学习(1.1):CPU_CPU缓存

文章目录1 简介2 工作机制3 Cache Line参考资料: 1. https://www.makeuseof.com/tag/what-is-cpu-cache/ 2. https://zhuanlan.zhihu.com/p/80672073 3.CPU Cache 机制以及 Cache miss 4.性能优化方法和技巧 在日常的嵌入式开发中,查看一些SOC的datashe…

想学习编程,该怎么开始,需要多长时间?

想学习编程,该怎么开始,需要多长时间? 其实学编程也没有啥特别的方法,和我们没基础学驾照差不多。 考A照、B照还是C照,我们先得拎清,它们的用途存在一定差异 。一样的,学编程是学C,Java、Pyth…

命令行在服务器的Oracle新建、修改用户并授权

1.前提解说 由于我是使用docker拉取的Oracle,这里截图的Oracle用户是原本安装好的Oracle用户。 2.步骤 1.Linux服务器切换到Oracle su oracle 2. 进入SQL sqlplus / as sysdba 3.新建用户(一定要加“;”) create user 用户名 identified by 密码; 若是修…

Tableau可视化设计案例-02Tableau数据处理、折线图

文章目录Tableau可视化设计案例02Tableau数据处理、折线图1.数据前处理2.绘制折线图2.1 创建电影数据变化折线图2.2创建电影票房变化折线图2.3 20215年的电影数量与票房比较分析Tableau可视化设计案例 本文是Tableau的案例,为B站视频的笔记,B站视频 参考…

Java集合/泛型面试题

✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏:Java面试题…

作为文科生,如何才能学好一门编程语言?

学习新知识的过程总是痛苦和逆人性的,古往今来皆是如此,否则也不会有十年寒窗苦读一说。 相信此刻看这篇文章的你,经历的寒窗绝对不止十年。 从小学开始算起到大学毕业,绝大多数人起码经历了16年(跳级的神童与学霸除…

5G无线技术基础自学系列 | 单站点验证测试

素材来源:《5G无线网络规划与优化》 一边学习一边整理内容,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:5G无线技术基础自学系列 | 汇总_COCOgsta的博客-CSDN博客 单站点验证工作是通过测试来进行功能性…

二级MS Office真题第8套完整解析

全国计算机等级考试二级新增预测第一套 一、文字处理 公司将于今年举办“创新产品展示说明会”,市场部助理小王需要将会议邀请函制作完 成,并寄送给相关的客户。现在,请你按照如下需求,在Word.docx文档中完成制作工作:…

非零基础自学Golang 第11章 文件操作 11.1 目录基本操作 11.1.1 列目录

非零基础自学Golang 文章目录非零基础自学Golang第11章 文件操作11.1 目录基本操作11.1.1 列目录第11章 文件操作 计算机文件是以硬盘为载体的信息存储集合,文件可以是文本、图片、程序等。在编写程序时,我们经常会和文件打交道,比如从文件读…

推送github一直超时以及输入密码提示2021年8月以后密码不能用解决

最近推送github常常出现443端口超时,查询了很多办法最后用了如下方法解决 首先电脑设置里面搜索代理服务器设置,记住这个端口 用上面的地址和端口运行如下命令 git config --global http.proxy http://127.0.0.1:31181 git config --global https.pro…

小学生C++画图 Go C 编程 第8课 魔法计时器(魔法学院的奇幻之旅 Go C编程绘图)

Goc编程第一课 Goc编程第一课_哔哩哔哩_bilibili Goc编程第一课扩展加复习 Goc编程第一课扩展加复习_哔哩哔哩_bilibili Goc编程第二课 Goc编程第二课_哔哩哔哩_bilibili Goc编程第三课 Goc编程第三课_哔哩哔哩_bilibili Goc编程第四课 Goc编程第四课_哔哩哔哩_bilibili G…

JSCharting JavaScript 3.3.X 12/17/2022 Crack

JSCharting JavaScript 图表库 每个 JSCharting 许可证包括全套 150 多种高级图表类型以及交互式股票图表、无缝网格和日历支持、JavaScript 地图、甘特图、JavaScript 组织结构图和微型图表,企鹅Ω578867473。 画廊 在每台设备上满足每一种需求的图表类型! 包括条形…

【前端开发学习】6.MySQL

文章目录1 MySQL 指令1.1 数据库管理(文件夹)1.2 数据表管理(文件)1.3 数据行操作总结2 案例:员工管理2.1 创建表结构2.2 Python 操作 MySQL1. 创建数据2. 查询数据3. 删除4. 修改总结3 案例: Flask 前端 …

JVM类加载/双亲委派模型

类加载是一个复杂的过程, 那么我们平时说的类加载到底是干啥的呢? 一. 类加载是干啥的 我们都知道Java程序在运行之前, 需要进行编译, 由 .java > .class文件(二进制字节码文件) , 而在运行的时候呢, Java进程(JVM), 就会读取对应的 .class文件, 并且解析他的内容, 在内存…

MySQL --- 函数大全 8

目录 1.返回一个字符串在出现指定数量的分隔符之前的子字符串 SUBSTRING_INDEX() 2.减去时间 SUBTIME() 3.返回总和 SUM() 4.返回函数执行的时间 SYSDATE() 5.返回参数的切线 TAN() 6.提取表达式传递的时间部分 TIME() 7.格式…

ZY_BMP280大气压模块的使用和stm32程序

在搞设计时,用到了大气压模块BMP280,这玩意也不难,主要是淘宝店老板特别der一问三不知,真服了,而且资料里面没有给例程,只有51的例程,利用IIC通信,而且给的例程里面,乱七…

说说 fiber、DOM、ReactElement、实例对象之间的引用关系

大家好,我是前端西瓜哥。 本文探究 fiber、DOM、ReactElement、类组件实例之间的引用关系说明。 React 版本为 18.2.0 原生组件 fiber 原生组件 fiber,指的就是 type 为 “span”、“div” 的 fiber。 fiber.stateNode 指向真实 DOM 节点;n…

Tableau可视化设计案例-03基本表、树形图、气泡图、词云

文章目录Tableau可视化设计案例03基本表、树形图、气泡图、词云1.基本表1.1基本表的使用1.2凸显表的使用1.3二值凸显表2.树形图2.1不同类型酒店数量与评价人数2.2油尖旺不同类型酒店数量与价格3.气泡图与词云3.1不同地区酒店数量与平均价格气泡图3.2动作电影动态气泡图3.3词云图…

Dubbo 4 Dubbo 高级特性 4.2 Dubbo 常用高级配置 4.2.1 序列化

Dubbo 【黑马程序员Dubbo快速入门,Java分布式框架dubbo教程】 4 Dubbo 高级特性 文章目录Dubbo4 Dubbo 高级特性4.2 Dubbo 常用高级配置4.2.1 序列化4.2 Dubbo 常用高级配置 4.2.1 序列化 【一个问题】 两个机器传输数据,如何传输Java对象&#xff…