32 文件操作

一、文件的概念

  • 可以存储在 长期存储设备(硬盘,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参数

猜你喜欢

转载自blog.csdn.net/qq_46071165/article/details/129369499
今日推荐