Python基础语法----文件操作(主讲“操作模式“)

文件操作当然需要明白什么是文件,具体是怎么样对其进行一系列操作的,下面是我的一些理解

一.文件的含义:

文件:存储数据的物理载体都是文件,数据在计算机中持久保存主要依靠的就是文件

二.操作文件格式及其中参数的介绍:

1.格式:

操作文件一般格式为:open(file, mode='r', encoding=None)

  • file:必需的,文件路径(绝对或相对路径);
  • mode:打开文件的模式;
  • encoding:编码格式,一般为utf-8

2.mode参数:

mode:代表了我们以什么形式打开文件(读,写,可读可写)

参数 含义
w 写入模式:文件存在则会覆盖文件内容,不存在则会进行创建,写入内容
w+ 读写模式:和"w"有类似的功能,只不过可以读取文件
wb 写入模式:以二进制方式写入文件,文件存在则会覆盖文件内容,不存在则会创建文件,然后写入内容
r 只读模式:见名思意,read只对文件进行读取其内容操作,读取文件,文件不存在会报错
r+ 读写模式:指针在文件开头,内容追加在文件末尾
rb 只读模式:以二进制方式读取文件,文件指针将会放在文件的开头
a 写入模式:文件存在则会对文件内容进行追加(写在文件末尾),不存在则会创建文件,然后再写入内容
a+ 读写模式:和"a"有类似的功能,只不过可以读取文件
ab 写入模式:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入

注意:默认为文本模式,如果要以二进制模式打开,加上 b

3.encoding参数:

encoding:表示的是编码格式,一般最常用的有utf-8中文编码格式

三:打开文件的两种方式:

一般打开文件有两种方式:

1.别名=open(file, mode=‘r’, encoding=None):

open(file, mode='r', encoding=None):这种打开方式一定要注意有始有终,因为打开了,就要在操作完毕后对其close,不然会占用一个文件通道比较占内存,所以一般必须进行close()方法

"""open"""
f=open("测试.txt","w",encoding="utf-8")
f.write("Hello World").
"""切记不能忘记此方法"""
f.close()

在这里插入图片描述

2.with open(file, mode=‘r’, encoding=None) as 别名:

with open(file, mode='r', encoding=None) as 别名:这种打开方式的好处是,打开后不用去用close()方法去关闭文件,相对而言比较简单一点

"""with open"""
with open("测试.txt","w",encoding="utf-8")as f:
    f.write("您好 世界")

在这里插入图片描述

四.读文件:

上面也说过了都问了读文件的几种方式,下面一起来看看

1."r"模式:

只读,文件不存在会报错

"""with open"""
with open("测试.txt","r",encoding="utf-8")as f:
    print(f.read())

在这里插入图片描述

"""with open"""
with open("测试1.txt","r",encoding="utf-8")as f:
    print(f.read())

在这里插入图片描述
(因为没有这个文件所以在读取时候就报错了)

2."rb"模式:

以二进制读取文件
在这里插入图片描述

"""with open"""
with open("测试.txt","rb")as f:
    print(f.read())

在这里插入图片描述

不能使用encoding="utf-8",不然会报错

"""with open"""
with open("测试.txt","rb",encoding="utf-8")as f:
    print(f.read())

在这里插入图片描述

五.写文件:

1."w"模式:

文件存在则覆盖内容不存在则创建
在这里插入图片描述

"""with open"""
with open("测试.txt","w",encoding="utf-8")as f:
    f.write("Hello World")

在这里插入图片描述

2."a"模式:

文件存在则会进行追加,不存在则会创建
在这里插入图片描述

"""with open"""
with open("测试.txt","a",encoding="utf-8")as f:
    f.write("我是追加进来的内容")

在这里插入图片描述

3."wb"模式:

以二进制方式写入文件,文件存在则会覆盖文件内容,不存在则会创建文件,然后写入内容
在这里插入图片描述

"""with open"""
with open("测试.txt","wb")as f:
    f.write("hello".encode("utf-8"))

在这里插入图片描述

4."ab"模式:

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
在这里插入图片描述

"""with open"""
with open("测试.txt","ab")as f:
    f.write("hello".encode("utf-8"))

在这里插入图片描述

六.读写文件:

1."w+"模式:

和"w"具有类似的功能,只不过就是多了读文件这一操作
在这里插入图片描述

"""with open"""
with open("测试.txt","w+",encoding="utf-8")as f:
    f.write("我是第二次进来的内容,我会覆盖以前的")
    print(f.read())

在这里插入图片描述

2."a+"模式:

和"a"具有类似的功能,但是可以读取文件
在这里插入图片描述

"""with open"""
with open("测试.txt","a+",encoding="utf-8")as f:
    f.write("我是第二次追加进来的内容,我不会覆盖以前的")
    print(f.read())

在这里插入图片描述

3."r+"模式:

指针在文件开头,内容追加在文件末尾

"""with open"""
with open("测试.txt","r+",encoding="utf-8")as f:
    f.write("我是第三次追加进来的内容,我不会覆盖以前的")
    f.write("您好")
    print(f.read())

在这里插入图片描述
注意:相信大家在"w+"和"r+"中,都有可能出现读取不到文件的情况,这是因为光标定位的位置所导致的,定位在末尾肯定读取不到,所以我们可以在其中加入f.seek(0),类似于下代码:

"""with open"""
with open("测试.txt","w+",encoding="utf-8")as f:
    f.write("我是第三次追加进来的内容,我不会覆盖以前的")
    f.seek(0)
    print(f.read())

将光标定位在文件开头,这样就可以进行读取了,希望大家谨记!!!

七.注意事项:

  1. 读文件文件必须存在
  2. 写文件注意模式,覆盖还是追加
  3. 在"wb",“ab”,"rb"时需注意f.write("hello".encode("utf-8")),不能少了后面的编码格式,因为它们都是二进制执行一系列操作的,需要明白以什么编码形式进行

以上就是我对其模式的一些理解,下一篇将介绍读取文件的几种方法

猜你喜欢

转载自blog.csdn.net/qq_45096273/article/details/107710623