论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
软件与程序人生
›
后端开发
›
Java
›
【python基础】文件-初识文件
【python基础】文件-初识文件
熊熊出没
金牌会员
|
2023-6-24 18:15:41
|
显示全部楼层
|
阅读模式
楼主
主题
921
|
帖子
921
|
积分
2763
文本文件可存储的数据量是非常多的。每当需要分析或修改存储在文件中的信息时,首先就是读取文件到内存中,为此可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取。
1.读取文件
1.1读取整个文件
要读取文件,需要一个包含几行文本的文件。下面首先来创建一个poems文本文件,,里面存储着一首古诗。
读取文件,其语法格式如下所示:
注意这个文本文件是utf-8编码格式的,如果是windows默认的gbk模式,在读取时可能存在错误编写程序如下所示:
在这个程序中,with open('poems.txt') as poems_file: 这条语句做了大量的工作。
1.open函数。要以任何方式使用文件,哪怕仅仅是输出其内容,都得先打开文件,这样才能访问它。
2.open函数接受一个参数,这个参数是要打开的文件的名称。Python在当前执行的文件所在的目录中查找指定的文件。
3.open函数返回一个表示文件的对象,Python将这个对象存储在as后面的变量中。
4.关键字with再不需要访问文件后将其关闭。在这个程序中,注意到我们调用了open函数。但没有调用close函数。这里可以调用open函数和close函数来打开和关闭文件。但这样做时,如果程序存在bug,导致close语句未执行,文件将不会关闭。如果未妥善地关闭文件可能会导致数据丢失或受损。但如果在程序中过早的调用close(),那么在我们使用文件的时候它已关闭,我们无法访问。并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过使用前面所示的结构,可让Python去自行确定,我们只管打开文件,并在需要时使用它,Python会在合适的时候自动将其关闭。
5.有了poems.txt文件对象变量,我们使用read方法读取这个文件的全部内容,并将其作为一个字符串存储在变量poems_content中。
1.2.逐行读取
读取文件时,常常需要检查其中每一行;可能要在文件中查找特定的信息或者要以某种方式修改文件中的文本。要以每次一行的方式检查文件,可对文件对象使用for循环:
我们打印每一行时,发现多出来了空白行,因为在这个文件中,每行的末尾都有一个看不见的换行符,而print函数也会加上一个换行符,因此每行末尾都有两个换行符:一个来自文本,一个来自print函数。要消除这些多余的空白行,可以将文本的换行符删除,或者让print函数不输出换行符
方法1,rstrip函数用于删除字符串末尾的换行符,编写程序如下所示:
方法2,print函数不输出换行符,编写程序如下所示:
2.结合列表
2.1创建一个包含文件各行内容的列表
使用withi关键字时,open函数返回的文件对象变量只在with代码块内可用。如果要在with代码块外访问文件的内容,可在with代码块外使用该列表。
编写程序如下所示:
2.2利用列表对文件的内容进行操作
我们发现上面输出的list列表中,数据元素是带有'\n'换行符的,我们如何删除它,这里也是用到rstrip函数,编写程序如下所示:
3.写入文件
保存数据的最简单的方式之一是将其写入到文件中,通过将输出写入文件,即便关闭包含程序输出的终端窗口,这些输出也依然存在。可以在程序结束运行后查看这些输出,可与别人分享输出文件,还可编写程序来将这些输出读取到内存中并进行处理。
3.1写入空文件
要将文本写入文件,在调用open需要提供另一个实参变量,该实参变量是open函数操作文件的模式,告诉Python我们要写入打开的文件。为明白其中的工作原理,我们来将一条简单的消息存储到文件中,而不是将其输出到终端窗口。
其语法格式:
open('文件名称',文件模式)
编写程序如下所示:
我们打开new_file.txt查看一下
发现是我们想要的效果。
注意:
1.调用open函数时,提供了两个实参变量,一个是文件名称,另一个是文件模式。
实参变量值文件模式'r'只读模式,默认模式'w'只写模式'r+'读写模式'a'附加模式2.如果要写入的文件不存在,open函数将自动创建它。然而,以写入模式打开文件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件。
3.write是文件对象的写入方法,作用是将一个字符串写入文件。
4.Python只能将字符串写入文本文件,要将数值数据存储到文本文件中,必须先使用str函数将其转换为字符串格式。
3.2写入多行
write函数不会在写入的文本末尾添加换行符,因此如果写入多行时没有指定换行符,文件看起来可能不是我们预想的结果:
编写程序如下所示:
我们打开new_file.txt查看一下,
发现两个字符串连接在一起了。
要让每个字符串都单独占一行,需要在write()语句中包含换行符,编写程序如下所示:
我们打开new_file.txt查看一下
3.3附加到文件
如果要给文件添加内容,而不是覆盖原有的内容,可以用附加模式打开文件。以附加模式打开文件时,Python不会在返回文件对象时清空文件,而是将写入到文件的行都添加到文件末尾。如果指定的文件不存在,Python将创建一个空文件。
编写程序如下所示:
我们打开new_file.txt,查看一下,
我们可以发现,文件原来的内容还在,最后的两行是我们新添加的内容。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
熊熊出没
金牌会员
这个人很懒什么都没写!
楼主热帖
数据库的三大范式
创建SQL server服务器
在字节跳动干软件测试5年,4月无情被辞 ...
django小项目 ----- 创建错题集 ...
TortoiseGit间接处理linux目录下的仓库 ...
神经网络与深度学习
Java如何调用HttpURLConnection类模拟 ...
[Golang] GO 语言工作环境的基本概念 ...
SeaTunnel 发布成为 Apache 顶级项目后 ...
基于遗传算法的最优潮流问题的研究(Ma ...
标签云
存储
服务器
浏览过的版块
数据仓库与分析
快速回复
返回顶部
返回列表