目录
一、文件的概念
二、文件的分类(分类依据:能否使用文本编辑器打开文件)
1、文本文件
2、二进制文件
三、文件操作的步骤
1、打开文件:open()函数
2、打开文件的另一种写法(推荐):with open方法
3、读文件:read()
4、按行读取文件:readline()
5、按行读取大文件
6、写文件:write()
7、关闭文件:close()函数
四、打开文件的方式
一、文件的概念
-
可以存储在 长期存储设备(硬盘,U盘)上的一段数据即为文件
-
例如:进行自动化测试时,测试数据是保存在测试文件中的,执行自动化测试时,从文件中读取测试数据,进行自动化代码的执行
-
一般少量数据需要永久保存时会使用文件,大型系统中数据需要永久保存时用数据库
二、文件的分类(分类依据:能否使用文本编辑器打开文件)
(1)计算机只认识 二进制数据(0 和 1)(2)所有的文件在计算机中存储的形式都是 二进制即 0 和 1 ,打开文件看到的是文字不是 0 和 1 ,原因是打开文件的软件会自动的将二进制转换为 文字(3)不论是文本文件还是二进制文件,在计算机中都是按二进制存储的。
1、文本文件
-
可以直接使用文本编辑器查看内容的文件,例如:Python代码文件
-
可以使用txt、py、md、json等打开的文件
2、二进制文件
-
不可以直接使用文本编辑器()查看内容的文件,例如:音频(mp3)、视频(mp4)、图片(png、jpg、gif)
三、文件操作的步骤
1、打开文件:open()函数
2、打开文件的另一种写法(推荐):with open方法
# 读取文件第1种写法:需手动关闭文件
# mode='r':可以省略,open函数默认读文件
f1 = open('a.txt','r',encoding='utf-8')
data = f1.read()
print(data)
f.close()
# 读取文件第2种写法(推荐):出了with缩进之后,文件自动关闭
# mode='r':可以省略,with open方法默认读文件
with open('a.txt',mode='r',encoding='utf-8') as f:
buf = f.read()
print(buf)
3、读文件:read()
-
read()方法可以一次性 读入 并 返回 文件的 所有内容
-
读到文件末尾,返回 空字符串
4、按行读取文件:readline()
-
readline()方法可以一次性读取一行内容,方法执行后,会把 文件指针 移动到下一行,准备再次读取
-
读到文件末尾,返回空字符
'''
文件a.txt包含内容
aaaaaa
bbbbbb
'''
with open('a.txt',encoding='utf-8') as f:
buf = f.readline()
print(buf) #aaaaaa
# 按行读取文件,读过的就不能再读了
buf1 = f.readline()
print(buf1) #bbbbbb
5、按行读取大文件
-
通过循环按行读取大文件,不知道循环多少次时,就用"while True:"
# # 通过循环按行读取大文件
# with open('a.txt',encoding='utf-8') as f:
# # 当不知道循环多少次时,使用"while True:"
# while True:
# buf = f.readline() #如果文件读完了,就会返回空字符串
# if buf=="":
# break
# else:
# print(buf,end='') #不想多加换行,就加上end=''
with open('a.txt',encoding='utf-8') as f1:
# 当不知道循环多少次时,使用"while True:"
while True:
buf1 = f1.readline()
if buf1: #文件读完了,返回空字符串,空字符串是False,非空字符串为true
print(buf1,end='') #非空字符串就打印出来
else:
break
6、写文件:write()
# 文件操作的步骤
# 1、打开文件
# 本来没有a.txt文件,以只写方式打开文件、写入内容并关闭文件后,会自动创建一个a.txt文件出来,并保存刚写入的内容
f = open('a.txt','w',encoding='utf-8')
# 2、写文件
#第一次运行代码后 a.txt中只有’hello python!‘
# f.write('hello python!')
# 第二次运行代码后a.txt中只显示:好好学习\n天天向上---文件已存在再写入的内容会覆盖原文件的内容
f.write('好好学习\n天天向上')
# 关闭文件
# 关闭文件会自动将刚写入内存的内容保存到硬盘中
f.close()
7、关闭文件:close()函数
四、打开文件的方式
-
r w a:称为是 文本打开方式,适用于 文本文件,会对二进制进行编码转换
-
rb wb ab:称为是二进制方式打开,可以打开文本文件和二进制文件,但是 二进制文件只能使用 二进制方式打开,同时,不能传递encoding参数