5-python文件操作
文章目录
- 1.打开文件
- 2.文件读取
- 3.文件关闭
- 4.文件写入/追加
1.打开文件
当传参顺序不一致时,不能使用位置传参,应使用关键字传参
open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
通常使用:
open(file=“”,mode=“”,encoding=“”)
(1)file:(所在路径)文件名
(2)mode:打开文件的模式
①只读r:默认模式,可省略
②写入w:若原文件存在,会删除原文件的内容,重新开始编辑;如果文件不存在,会创建新文件
③追加a:原文件内容不会被删除,可以在后面写入新的内容;如果文件不存在,会创建新文件
(3)encoding:编码格式
默认为UTF-8,某些情况下可省略,但建议注明。常见的编码有UTF-8、GBK、Big5
2.文件读取
(1)read(num)方法:从文件中读取指定字节num的数据,如果num为空默认全部读入
例如:在D盘有一个hello.txt的文件

打开并读取
如果多次使用read(num),会从上次读取结束的位置继续往后读取num个字节,如果上次已经读到底,再调用read将读不到任何数据
f=open(file="D:/hello.txt",mode="r",encoding="UTF-8")
print(f.read())

(2)readlines()按照行的方式把整个文件中的内容进行一次性读取,返回一个列表,其中每一行的数据为一个元素

f=open(file="D:/hello.txt",mode="r",encoding="UTF-8")
print(f.readlines())

(3)readline()方法:调用一次只会读取到一行

f=open(file="D:/hello.txt",mode="r",encoding="UTF-8")
print(f.readline())
print(f.readline())
print(f.readline())

(4)使用for循环读取

每次调用都会读取一行的内容
f=open(file="D:/hello.txt",mode="r",encoding="UTF-8")
for x in f:print(x)

3.文件关闭
使用结束后使用close关闭文件对象,结束对文件的占用
如果不使用close,文件会在程序结束运行时关闭
文件未关闭时,相当于文件已打开,不能在计算机上对文件进行删除、重命名等操作
f=open(file="D:/hello.txt",mode="r",encoding="UTF-8")
f.close()
print(f.read()) # ValueError: I/O operation on closed file.
操作完成后自动关闭文件 with open,不再需要close操作
with open(file="D:/hello.txt",mode="r",encoding="UTF-8") as f:print(f.read()) # 输出见下图
print(f.read()) # ValueError: I/O operation on closed file.

[练习] 统计D:/practice.txt(下图)中单词"and"出现的次数

[解]
法一:使用read读取,count计数
f=open("D:/practice.txt","r")
print(f.read().count("and"))
f.close()
输出:11
此方法统计的是文中出现"and”的次数,而非"and”单词的数量

法二:使用for循环读取
此方法能准确统计到"and”单词出现的次数
count=0 # 记录单词"and"出现的次数
f=open("D:/practice.txt","r")
for x in f: # 每次读取一行x=x.strip() # 去除开头和结尾的空格和换行符words=x.split(" ") # 以空格切割字符串,形成一个个单词存入wordsfor y in words:if y=="and":count+=1
print(count)
输出:10
4.文件写入/追加
f.write(“写入内容”):写入内存缓冲区
f.flush():真正写入文件(追加需要,写入不需要)

(1)追加
f=open("D:/hello.txt","a") # 追加打开,不可读
f.write("nihao")
f.flush() # 必须有
f.close()

追加打开不可读,需要重新只读读打开
f=open("D:/hello.txt","a") # 追加打开,不可读
f.write("nihao")
f.flush()
print(f.read()) # io.UnsupportedOperation: not readable
f=open("D:/hello.txt","a") # 追加打开,不可读
f.write("nihao")
f.flush()
f=open("D:/hello.txt","r") # 只读
print(f.read()) # hahanihao
换行追加

f=open("D:/newfile.txt","a")
f.write("\nhello")
f.close()

(2)写入
写入可以不使用flush,会自动调用
D盘无文件
f=open("D:/newfile.txt","w") # 创建新文件newfile.txt
f.write("newwrite")
f.close()

在此基础上覆盖写入
f=open("D:/newfile.txt","w")
f.write("nihao")
f.close()

同样,写入操作也不能读取
[练习] 将D盘下test.txt文件的内容的正式项拷贝到D盘下bill.txt的文件中

fold=open("D:/test.txt","r",encoding="UTF-8") # 老文件用fold标识,只读即可
fnew=open("D:/bill.txt","w",encoding="UTF-8") # 新文件用fnew标识,这里用的是写入w
for x in fold: # 遍历每一行x=x.strip()if x.split(",")[3] == "测试": # 分割结果用列表保存,可以进行下标索引continue
# 等价于 word=x.split(","); if word[3]...fnew.write(x+"\n")
fold.close()
fnew.close()

相关文章:
5-python文件操作
文章目录1.打开文件2.文件读取3.文件关闭4.文件写入/追加1.打开文件 当传参顺序不一致时,不能使用位置传参,应使用关键字传参 open(file, mode‘r’, buffering-1, encodingNone, errorsNone, newlineNone, closefdTrue, openerNone) 通常使用…...
企业级Oracle入门Linux/Unix基础①
1、了解计算机系统的组成、操作系统介绍、IT技术发展与云计算、服务器的分类、存储设备介绍、常用的主机存储有哪些? 1.1 计算机系统的组成: 计算机系统由硬件和软件两部分组成。硬件包括中央处理器(CPU)、内存、输入输出设备、…...
NexNoSQL Client:Elasticsearch、Redis、MongoDB三合一的可视化客户端管理工具
背景: 工作中我们使用了Elasticsearch作为存储,来支持内容的搜索,Elasticsearch这个软件大家都耳熟能详,它是一个分布式、高扩展、高实时的搜索与数据分析引擎,不仅仅支持文本索引,还支持聚合操作…...
如果大学能重来,我绝对能吊打90%的大学生,早知道这方法就好了
最近收到很多大学生粉丝的私信,大多数粉丝们都迷茫着大学计算机该怎么学,毕业后才能找到好工作。 可能是最近回答这方面的问题有点多,昨晚还真梦回大学…其实工作了20多年,当过高管,创过业,就差没写书了。…...
FactoryBean是现在的执行时机
调用getBean方法,最终到org.springframework.beans.factory.support.DefaultListableBeanFactory#preInstantiateSingletons方法: for (String beanName : beanNames) {RootBeanDefinition bd getMergedLocalBeanDefinition(beanName);if (!bd.isAbstr…...
自定义注解使用
现象: 自定义注解使用 方法: 1:元注解 java.lang.annotation 下定义了元注解 Documented 文档相关 标注了此注解则会包含在javadoc文档中Retention 指定注解生命周期Target 指定注解作用范围Inherited 指定子类可以继承父类的注解Native …...
2023年全国最新高校辅导员精选真题及答案42
百分百题库提供高校辅导员考试试题、辅导员考试预测题、高校辅导员考试真题、辅导员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 89.侵犯行为是一种故意伤害他人的行为,一般包括了动机、行为和后果。 答案&a…...
Python模拟星空
文章目录前言Turtle基础1.1 Turtle画板1.2 Turtle画笔1.3 Turtle画图1.4 Turtle填色1.5 Turtle写字模拟星空模拟星球浪漫星空尾声前言 Python模拟星空,你值得拥有!uu们一周不见啦,本周博主参考网上大佬们的星空,给大家带来了属于…...
IDE集成开发工具-IDEA(一)之IDE的概念
IDE的概念 集成开发环境(IDE,Integrated Development Environment )是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。集成了代码编写功能、分析功能、编译功能、调试功能等一体化的开…...
基于Java+Springboot+vue的汽车租赁系统设计与实现【源码(完整源码请私聊)+论文+演示视频+包运行成功】
博主介绍:专注于Java技术领域和毕业项目实战 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟 Java项目精品实战案例(200套) 目录 一、效果演示 二、…...
【笔记】关于Maven中<optional>标签的理解
之前我有个误区:子pom通过<parent>标签继承父pom,如果父pom中的依赖设置<optional>true</optional> <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version&g…...
JavaScript函数及面向对象
JavaScript函数及面向对象 4.1、函数定义及变量作用域 定义方式一 绝对值函数 function abs(x){if(x>0){return x;}else{return -x;} }一旦执行到return代表函数结束,返回结果! 如果没有执行return,函数执行完也会返回结果,…...
【chartGPT】我们要不要搞chartGPT?
话题:官兔子并未表态要研发chartGPT,chartGPT炒的很火,我们到底要不要投入研发呢? 问题起因:我个人是做技术的,也玩炒股。就昨天吧,看到一个热评【马斯克等呼吁暂停chartGPT5的研发,周鸿炜谈不发展才是最大…...
java——date时间类型操作
目录 1.date类型使用 2.获取想要的自定义时间点 3.date类型与String类型转换 4.date时间先后比较 1.date类型使用 在java中,日期时间用java.util.Date类来表示,调用默认构造器Date(),将会创建一个当前系统时间的Date对象,时间…...
应急响应——IDSIPSmsf流量后门分析
目录 0x01 网页篡改与后门攻击防范应对指南 0x02 主要需了解:日志存储,Webshel检测,分析思路等...
项目二:电子骰子
项目二:电子骰子 文章目录项目二:电子骰子一、导入(5分钟)学习目的二、新授(65分钟)1.预展示结果(5分钟)2.本节课所用的软硬件(5分钟)3.硬件介绍(1分钟)4.图形化块介绍(1分钟)5.单个模块的简单使用(1分钟)6.电子骰子编程逻辑分析(25分钟)7.电…...
D. Genius‘s Gambit(很多情况)
Problem - D - Codeforces 已知三个整数a b k。求两个二进制整数z和y ( > y)满足1. y都由a个0和b个1组成;2. X - y(也是二进制形式)恰好有k个1。z和y不允许使用前导零。输入唯一的一行包含三个整数a, b和k (0 <a;1 <b;0<k < ab< 2- 105) -结果中0、1和1的个数…...
jsp824汽车维修保养管理系统javaEE+mysql
主要实现 1.车主信息管理:管理员发布车主信息后,普通用户查询到该车主信息,用户选择某个车主信息,查询车主信息,管理员审核添加,或删除车主信息。 2.保养信息管理:管理员…...
Linux下C/C++ redis协议(RESP)解析
Redis是一个开源的内存键值数据存储,最常用作主数据库、缓存、消息代理和队列。Redis提供了亚毫秒的响应时间,在游戏、金融科技、广告技术、社交媒体、医疗保健和物联网等行业实现了快速而强大的实时应用。 Redis连续五年成为开发人员最喜爱的数据库。开…...
IDEA 性能优化设置
在我们日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,明明我们的机器配置也不低啊?为什么就会一直卡顿呢? “ 原来这是因为IDEA软件在我们安装的时候就设置了默认的内存使用上限(通常很小),…...
大语言模型底层逻辑:从LM到Agent的完整工作流解析!
本文深入剖析了大语言模型(LM)的核心架构与工作原理,重点介绍了Token作为数据处理单元、Context作为临时记忆体的作用,以及Prompt、Tool、MCP等关键组件如何协同运作。文章还探讨了Agent的自主决策系统与Agent Skill的任务定制机制…...
NOMA实战:从叠加编码到SIC解码的链路级仿真解析
1. NOMA技术基础与核心原理 NOMA(非正交多址接入)是5G通信中的一项关键技术,它彻底改变了传统正交多址技术(如OFDMA)的资源分配方式。我第一次接触NOMA时,最让我惊讶的是它竟然主动引入干扰来提升频谱效率—…...
Arthas实战:用watch和tt命令‘时光倒流’,精准复现和调试那个偶现的线上Bug
Arthas实战:用watch和tt命令‘时光倒流’,精准复现和调试那个偶现的线上Bug 线上环境偶现的Bug就像幽灵一样难以捉摸——测试环境无法复现,日志信息又残缺不全。作为一名开发者,你是否经历过这样的绝望时刻?当用户反馈…...
独立开发者如何借助Taotoken的Token Plan有效控制月度AI支出
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 独立开发者如何借助Taotoken的Token Plan有效控制月度AI支出 对于独立开发者和小型团队而言,大模型API的调用成本是一个…...
Claude Code高效开发指南:精选工具、技能与工作流实践
1. 项目概述:一个为Claude Code开发者量身定制的“军火库”如果你正在使用Claude Code进行开发,并且已经度过了最初的新鲜感,开始思考如何让它真正成为你工作流中不可或缺的、高效且可靠的伙伴,那么你很可能已经遇到了一个核心问题…...
Silk v3解码器终极指南:高效转换微信QQ语音为MP3格式
Silk v3解码器终极指南:高效转换微信QQ语音为MP3格式 【免费下载链接】silk-v3-decoder [Skype Silk Codec SDK]Decode silk v3 audio files (like wechat amr, aud files, qq slk files) and convert to other format (like mp3). Batch conversion support. 项目…...
使用 Taotoken 后如何通过用量看板清晰掌握各模型消耗与成本分布
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用 Taotoken 后如何通过用量看板清晰掌握各模型消耗与成本分布 当你在项目中接入多个大模型时,一个常见的困扰是成本…...
NoFences:免费开源的Windows桌面分区工具终极指南,告别杂乱图标
NoFences:免费开源的Windows桌面分区工具终极指南,告别杂乱图标 【免费下载链接】NoFences 🚧 Open Source Stardock Fences alternative 项目地址: https://gitcode.com/gh_mirrors/no/NoFences 你是否厌倦了Windows桌面上混乱不堪的…...
答辩 PPT 熬到凌晨?PaperXie 用 AI 把你的毕业焦虑,变成 10 分钟的从容
paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPThttps://www.paperxie.cn/ppt/createhttps://www.paperxie.cn/ppt/create 你有没有过这样的时刻:答辩前一周,论文终于定稿,转头却卡在了 PPT 上。翻遍网盘里的答辩…...
从安卓4到安卓12:手把手教你搞定XP、EdXposed、LSPosed三大框架(附版本选择指南)
安卓模块化框架演进史:从XP到LSPosed的技术迭代与实战指南 在安卓系统的开放生态中,模块化框架始终扮演着拓展系统能力的核心角色。十年前,当开发者首次通过Xposed框架在不修改APK的情况下实现功能增强时,这种"热插拔"式…...
