文件操作当然需要明白什么是文件,具体是怎么样对其进行一系列操作的,下面是我的一些理解
文件:存储数据的物理载体都是文件,数据在计算机中持久保存主要依靠的就是文件
操作文件一般格式为:open(file, mode='r', encoding=None)
utf-8
mode:代表了我们以什么形式打开文件(读,写,可读可写)
参数 | 含义 |
---|---|
w | 写入模式:文件存在则会覆盖文件内容,不存在则会进行创建,写入内容 |
w+ | 读写模式:和"w"有类似的功能,只不过可以读取文件 |
wb | 写入模式:以二进制方式写入文件,文件存在则会覆盖文件内容,不存在则会创建文件,然后写入内容 |
r | 只读模式:见名思意,read只对文件进行读取其内容操作,读取文件,文件不存在会报错 |
r+ | 读写模式:指针在文件开头,内容追加在文件末尾 |
rb | 只读模式:以二进制方式读取文件,文件指针将会放在文件的开头 |
a | 写入模式:文件存在则会对文件内容进行追加(写在文件末尾),不存在则会创建文件,然后再写入内容 |
a+ | 读写模式:和"a"有类似的功能,只不过可以读取文件 |
ab | 写入模式:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入 |
注意:默认为文本模式,如果要以二进制模式打开,加上 b
encoding:表示的是编码格式,一般最常用的有utf-8
中文编码格式
一般打开文件有两种方式:
open(file, mode='r', encoding=None)
:这种打开方式一定要注意有始有终,因为打开了,就要在操作完毕后对其close
,不然会占用一个文件通道比较占内存,所以一般必须进行close()方法
"""open"""
f=open("测试.txt","w",encoding="utf-8")
f.write("Hello World").
"""切记不能忘记此方法"""
f.close()
with open(file, mode='r', encoding=None) as 别名
:这种打开方式的好处是,打开后不用去用close()
方法去关闭文件,相对而言比较简单一点
"""with open"""
with open("测试.txt","w",encoding="utf-8")as f:
f.write("您好 世界")
上面也说过了都问了读文件的几种方式,下面一起来看看
只读,文件不存在会报错
"""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())
"""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())
"""with open"""
with open("测试.txt","w",encoding="utf-8")as f:
f.write("Hello World")
"""with open"""
with open("测试.txt","a",encoding="utf-8")as f:
f.write("我是追加进来的内容")
以二进制方式写入文件,文件存在则会覆盖文件内容,不存在则会创建文件,然后写入内容
"""with open"""
with open("测试.txt","wb")as f:
f.write("hello".encode("utf-8"))
以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入
"""with open"""
with open("测试.txt","ab")as f:
f.write("hello".encode("utf-8"))
"""with open"""
with open("测试.txt","w+",encoding="utf-8")as f:
f.write("我是第二次进来的内容,我会覆盖以前的")
print(f.read())
"""with open"""
with open("测试.txt","a+",encoding="utf-8")as f:
f.write("我是第二次追加进来的内容,我不会覆盖以前的")
print(f.read())
指针在文件开头,内容追加在文件末尾
"""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())
将光标定位在文件开头,这样就可以进行读取了,希望大家谨记!!!
f.write("hello".encode("utf-8"))
,不能少了后面的编码格式,因为它们都是二进制执行一系列操作的,需要明白以什么编码形式进行以上就是我对其模式的一些理解,下一篇将介绍读取文件的几种方法