python进行文件处理

前言

在说文件处理之前,先想想看日常工作中文件是怎么处理的?简单总结是不是三步?1、打开文件2、读取/写入文件3、关闭文件,其实在python中对文件的处理也就这三步,下面就来讲解一下python对文件的处理。


文件的读取

读取全部内容
read_file = open("文件.txt", "r", encoding="UTF-8")   # 打开文件,第一个参数为文件的路径,第二个参数为操作文件的方式,r代表读取,第三个参数表示文件的格式为UTF-8
print(read_file.read())    # 读取文件
read_file.close()   # 关闭文件
我是第一行
我是第二行
我是第三行
读取单行

如果文件数据量很大,如果选择读取全部内容,内存会不够,所以,readline就出现了,顾名思义,就是读取单行内容。ext:如果想要读取指定行,可以通过循环语句来实现。

read_file = open("文件.txt", "r", encoding="UTF-8")   # 打开文件,第一个参数为文件的路径,第二个参数为操作文件的方式,r代表读取,第三个参数表示文件的格式为UTF-8
print(read_file.readline())    # 按行读取文件
read_file.close()   # 关闭文件
我是第一行
读取所有行

读取所有的行,并返回列表,每一行的数据作为列表的值。

read_file = open("文件.txt", "r", encoding="UTF-8")   # 打开文件,第一个参数为文件的路径,第二个参数为操作文件的方式,r代表读取,第三个参数表示文件的格式为UTF-8
print(read_file.readlines())    # 读取所有行
read_file.close()   # 关闭文件
['我是第一行\n', '我是第二行\n', '我是第三行']

文件的写入

如果文件不存在,会创建文件;如果文件存在,会删除文件中的内容并写入。

read_file = open("文件.txt", "w", encoding="UTF-8")   # 打开文件,第二个参数w代表写入
read_file.write("我在写入文件")    # 写入文件
read_file.close()   # 关闭文件
我在写入文件

文件的追加

如果文件不存在,会创建文件;如果文件存在,直接在文本的末尾写入。

read_file = open("文件.txt", "a", encoding="UTF-8")   # 打开文件,第一个参数为文件的路径,第二个参数为操作文件的方式,a代表追加,第三个参数表示文件的格式为UTF-8
read_file.write("我在追加文件")    # 追加文件
read_file.close()   # 关闭文件
我是第一行
我是第二行
我是第三行我在追加文件

二进制文件的读取和复制

二进制文件是什么,就是只有1和0的文件,比如图片、音频文件都属于二进制文件。

read_file = open("图片.png", "rb")    # 打开图片,第二个参数rb代表读取二进制文件
file = read_file.read()    # 读取文件
read_file.close()   # 关闭文件

write_file = open("复制图片.png", "wb")    # 创建一个文件图片文件,wb模式为写入二进制
write_file.write(file)    # 将图片文件的内容写入到新的图片文件中
write_file.close()

上下文管理器with关键字(建议使用该方法)

任何实现了 enter() 和 exit() 方法的对象都可称之为上下文管理器,上下文管理器对象可以使用 with 关键字。with语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理” 操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等。

with open("文件.txt", "r", encoding="utf-8") as read_file:    # 打开文件对象后,给他取个别名
    print(read_file.read())