Python 文件读写操作 | Python 主题月

本文正在参加「Python主题月」,详情查看 活动链接

回顾复习

我们上一期在Python 文件关闭流浅析里学习了文件的关闭,本期我们来详细学习文件的操作。

在学习之前,我们仍然回顾一下Python文件操作三步骤:

  • 创建文件对象,打开文件
  • 对文件进行读写等操作
  • 文件操作完后,关闭文件

同时,我们也在Python 文件管理浅析中,知道文件分为文本文件和二进制文件

本期,我们来学习好玩的,读取、添加、删除等文件里面的内容。

我们在学习之前,再来回顾一下,打开文件模式。
打开模式图

模式 作用
r 打开的文件,默认只读权限
r+ 打开的文件后,从开头开始读取
rb 打开的二进制文件只具有只读权限
rb+ 打开的二进制文件具有读写权限
w 打开的文件具有只读权限(会清空文件原有内容)
w+ 打开的文件具有读写权限(会清空文件原有内容)
wb 打开的二进制文件只具有只写权限
wb+ 打开的二进制文件具有读写权限
a 打开的文件并在原有内容之后追加新内容
a+ 打开的文件在原有内容之后追加新内容,且具有读写权限
ab 打开的二进制文件在原有内容之后追加新内容
ab+ 打开的二进制文件在原有内容之后追加新内容,且具有读写权限

学习了打开文件模式,我们调用open()函数方法就可以打开我们文件,然后进行接下来的操作啦

注意:我们调用了open函数打开文件,对文件进行操作完成后,我们要养成好习惯关闭文件哈

哪我们今天开启,正式的学习吧

1. 文本文件读写

我们在电脑目录下创建a.txt内容为

a.txt

1.1 文本文件读取

打开文件模式具有读的有r,r+,w+,a+

文件的读取一般适用三个方法:

  1. read([size])

    • 从文件中读取size个字符,并作为结果返回,如果没有size参数,则读取整个文件。
    • 读取到文件末尾,会返回空字符串
with open("a.txt") as f:
    f.read(3)
    
复制代码

read结果

  1. readline()

    读取一行内容作为结果返回,读取到的文件末尾,会返回空字符串

f = open("a.txt")
#读取一行数据
str = f.readline()
print(str)
f.close()
复制代码

ReadLine运行结果

  1. readlines()

    文本文件中,每一行作为一个字符串存入列表中,返回该列表

f = open("a.txt",'rb')
str = f.readlines()
print(str)
f.close()
复制代码

readlines运行结果

1.2 文本文件写入

我们在对文本文件写入的时候,打开文件具有写入模式的有 w,a,w+,a+ 四种模式

文本文件的写入一般有两个方法:

  1. write()

    向文件里写入指定内容

我们写入操作,打开文件模式a的话,是在文件内容后面追加新的写入内容

f = open("a.txt", 'a')
f.write("\n写入一行新数据")
f.close()
复制代码

a模式下write运行结果

打开文件模式是w的话,是会先清空原有内容,再写入新的内容

f = open("a.txt", 'w')
f.write("写入第二行行新数据")
f.close()
复制代码

w模式下write运行结果

  1. writelines()

    可以实现将字符串列表写入文件中

    我们来看一个writelines()方法栗子

f = open('a.txt', 'r')
n = open('b.txt','w+') #b.txt文件是空的
n.writelines(f.readlines())
n.close()
f.close()
复制代码

writelines运行结果

注意:写入函数只有 write() 和 writelines() 函数,而没有名为 writeline 的函数。

2. 二进制文件读写

二进制文件的处理流程和文本文件流程一致。

唯一的区别就是,打开二进制文件要加入b模式

主要步骤如下:

  1. 打开二进制文件例如:open(“XX.jpg”,”rb”)
  2. 创建文件对象
  3. 进行write、read操作
  4. 关闭二进制文件

我们来实现一个拷贝一张图片操作,来练习二进制文件读写操作

with open("BQ.jpg","rb") as f:
    with open("BQ_copy.jpg","wb") as w:
        for line in f.readlines():
            w.write(line)
print("copy end")
复制代码

二进制文件读写操作运行结果

二进制文件读写之后结果2

拷贝一张可爱的图片

总结

本期,我们详细学习和实操,文件读取和写入操作。在操作文件前打开文件的模式及区别。

在后续更好的对文件进行操作,打下夯实的基础。

以上是本期内容,欢迎大佬们指导点赞关注,下期见~

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享