文件是一个存储在副主存储器的数据序列,可包含任何数据内容 。
概念上,文件是数据的集合和抽象,类似的,函数是程序的集合和抽象 。
用文件形式组织和表达数据更有效也更加灵活 。
文件包括两种形式,文本文件和二进制文件 。
文本文件:一般由单一特定的编码的字符组成
二进制文件:一般由0和比特1组成,没有统一的字符编码 。
无论是通过文本还是二进制创建的文件,都可以用两种方式来打开 。
我们来举个例子对比文本文件和二进制文件,
首先我们在桌面创建一个文本文件,取名example,并写入“我爱我的祖国”
如下所示:
文章插图
注意:右下角的编码方式为“UTF-8”
然后执行代码:
fp=open("example.txt","rt",encoding='UTF-8')print(fp.readline())fp.close()fps=open("example.txt","rb")print(fps.readline())fps.close()在这段代码中,分别使用文本文件形式和二进制形式打开文档,然后读取、关闭 。
注:rt为文本文件形式、rb为二进制文件形式 。
运行结果如下所示:
私信小编01 领取完整项目代码!
文章插图
接下来,我们正式学习文件相关操作 。
1.文件的打开和关闭
说到文件的打开关闭,不由得让我想起以前的笑话,把大象装进冰箱需要几步?
文件操作和这个笑话一样,首先打开文件、然后进行操作、最后关闭文件 。
文件的打开:
文件默认处于存储状态,只有将其打开当前程序才有权操作这个文件 。
打开不存在的文件,程序将会创造一个新文件来进行操作 。
打开这个文件之后,文件处于被占用状态,另一个进程不得对文件进行操作 。
文件打开需要使用open()函数,格式如下:
<变量名>=open(<文件名>,<打开模式>)
encoding为编码方式
文件打开模式:
“r” :只读模式,文件不存在返回异常
“w” :覆盖模式,文件不存在则创建、文件存在则完全覆盖
“x“ :创建写模式,文件不存在则创建、存在则返回异常
”a” :追加写模式,文件不存在则创建、文件存在则在稳健最后追加内容
“b” :二进制模式
“f” :文本文件模式(默认值)
“+” :与 rw\xa一同使用,在原基础上加入了同时读写功能
打开模式可以为字符串形式,其中r,w,x,a可以和b,t,+组合使用
如刚刚例子的打开方式:rt,rb
encoding为编码方式
文件的关闭:
文件使用之后,要采用close()函数关闭文件,释放文件的使用授权
使用方法如下:
<变量名>.close()
2.文件的读取
文件打开之后,根据打开方式的不同可以对文件进行对应读写操作 。(记得注意编码方式)
文件的读取方法如下:
<file>.read(size=-1)
从文件读入整个文件内容,给出参数则读取前size长度的字符串
<file>.readline(size=-1)
从文件中读入一行内容,如果给出参数则读取每行前size长度的字符串
<file>.readlines(hint=-1)
从文件中读入整个文件的内容,以每一行为一个列表,如果给参入,只读取前hint行
举个例子,还是刚刚的example文件,我们多输入两行同样的文件,逐行读出 。
先打开文件,然后for循环,通过readlines()逐行读取、最后关闭 。
代码如下:
fp=open("example.txt","rt",encoding='UTF-8')for line in fp.readlines(): print(line)fp.close()运行结果如下:
文章插图
3.文件的写入
写入的常见函数有三个
<file>.write(s)
向文件写入一个字符串
<file>.writelines(lines)
讲一个元素全为字符串的列表写入文件
<file>.seek(offset)
改变当前文件操作指针的位置,offset的值“0”为文件开头、“1”当前位置,“2”文件结尾
举个例子,向文件写入一个列表类型[“中国”、“美国”、“法国”]
代码如下:
fp=open("example.txt","w+",encoding='UTF-8')lst=["中国","美国","法国"]fp.writelines(lst)fp.close()
推荐阅读
- 春秋贡享春节新推尊荣和品系列茶叶
- 虚拟主机和云服务器哪个对网站seo优化有利
- 使用一行Python代码从图像读取文本
- 5G_RAN SA架构介绍
- 碧生源保健茶升华中国茶文化和茶行业
- 2月14日浪漫夜 别忘记和健康有个“约会”!
- 纪晓岚和刘墉是同朝为官吗 纪晓岚与刘墉谁的官高
- 孝和睿皇后为什么不立自己儿子 孝和睿皇后的儿子
- 入驻天猫流程和条件 天猫平台入驻资质及要求
- 冬季养生食物大盘点 8种食物和冬天更配